Вы можете использовать next
с iter
для условия соответствия первого значения индекса для предотвращения сбоя, если нет соответствующих значений:
df = pd.DataFrame({'dates':pd.date_range(start='2018-01-01 20:00:00',
end='2018-01-02 02:00:00', freq='H')})
print (df)
dates
0 2018-01-01 20:00:00
1 2018-01-01 21:00:00
2 2018-01-01 22:00:00
3 2018-01-01 23:00:00
4 2018-01-02 00:00:00
5 2018-01-02 01:00:00
6 2018-01-02 02:00:00
date = '2018-01-02'
mask = df['dates'] >= date
idx = next(iter(mask.index[mask]), 'not exist')
print (idx)
4
date = '2018-01-08'
mask = df['dates'] >= date
idx = next(iter(mask.index[mask]), 'not exist')
print (idx)
not exist
Если важна производительность, см. Эффективно вернуть индекс первое значение, удовлетворяющее условию в массиве .
Лучшая начальная точка для этого является, вероятно, библиотеками Interprocess повышения. У них есть хороший пример карты в общей памяти здесь: межпроцессная карта
Вы, вероятно, также захотите считать раздел по интеллектуальным указателям смещения, который решает внутреннюю проблему указателя, к которой Вы обращались. Указатель смещения
Можно также хотеть к контролю Intel Threading Building Blocks (TBB) Containers.
У меня всегда были хорошие события (несколько лет назад) с ACE. Это - сети/коммуникационная платформа, но имеет раздел по общей памяти.
Я только знаю о собственных версиях. Bloomberg и EA оба опубликовали об их версиях STL, но не выпустили (к моему знанию) плоды их работы.
Попробуйте использовать реализацию QSharedMemory Qt.