У кого-либо есть хороший контейнер общей памяти для C++?

Вы можете использовать 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

Если важна производительность, см. Эффективно вернуть индекс первое значение, удовлетворяющее условию в массиве .

8
задан Michael Kohne 4 November 2008 в 17:54
поделиться

5 ответов

Лучшая начальная точка для этого является, вероятно, библиотеками Interprocess повышения. У них есть хороший пример карты в общей памяти здесь: межпроцессная карта

Вы, вероятно, также захотите считать раздел по интеллектуальным указателям смещения, который решает внутреннюю проблему указателя, к которой Вы обращались. Указатель смещения

12
ответ дан 5 December 2019 в 15:27
поделиться

Можно также хотеть к контролю Intel Threading Building Blocks (TBB) Containers.

0
ответ дан 5 December 2019 в 15:27
поделиться

У меня всегда были хорошие события (несколько лет назад) с ACE. Это - сети/коммуникационная платформа, но имеет раздел по общей памяти.

0
ответ дан 5 December 2019 в 15:27
поделиться

Я только знаю о собственных версиях. Bloomberg и EA оба опубликовали об их версиях STL, но не выпустили (к моему знанию) плоды их работы.

0
ответ дан 5 December 2019 в 15:27
поделиться

Попробуйте использовать реализацию QSharedMemory Qt.

-1
ответ дан 5 December 2019 в 15:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: