Вы можете использовать список filter
:
fruits_list = ['apples', 'oranges', 'mangoes']
filter_list = ['apples', 'oranges']
print([x for x in fruits_list if x not in filter_list])
ВЫХОД :
['mangoes']
Есть несколько моментов, которые бросились мне в глаза по поводу вашей реализации. Одним из них было использование указателя на именованный объект мьютекса, в то время как документация большинства библиотек boost имеет тенденцию отклоняться назад, чтобы не использовать указатель. Это заставляет меня попросить ссылку на фрагмент программы, над которым вы работали при создании собственного тестового примера, поскольку у меня были похожие злоключения, и иногда единственным выходом было вернуться к образцу и продвигаться вперед по одному шагу за раз, пока Я столкнулся с критическим изменением.
Другая вещь, которая кажется сомнительной, - это выделение вами блока размером 65 КБ для разделяемой памяти, а затем в вашем тестовом коде цикл до 1000000000, помещая строку в ваш стек на каждой итерации.
С современным ПК, способным выполнять 1000 инструкций за микросекунду и более, и с такими операционными системами, как Windows, по-прежнему выдавая кванты выполнения за 15 миллисекунд. куски, переполнение стека не займет много времени. Это будет мое первое предположение относительно того, почему все идет наперекосяк.
PS Я только что вернулся с того, что привязал свое имя к чему-то похожему на мою настоящую личность. Затем поразила ирония в том, что в моем ответе на ваш вопрос мы оба смотрели в глаза из верхнего левого угла страницы браузера! (Это, конечно, при условии, что я был прав, а в этом бизнесе так часто бывает не так.)
Well maybe shared memory is not the right design for your problem to begin with. However we would not know, because we don't know what you try to achieve in the first place.