Я пытаюсь сравнить два векторных объекта и вернуть один вектор, содержащий все символы, которые появляются в обоих векторах.
Как бы я поступил, не написав какой-то ужасно сложный ручной метод, который сравнивает каждый символ в первом векторе с каждым символом во втором векторе и использует if, чтобы добавить его к третьему вектору (который будет возвращен), если они совпадают.
Возможно, мой недостаток реального опыта работы с векторами заставляет меня думать, что это будет сложнее, чем есть на самом деле, но я подозреваю, что есть более простой способ, который я не смог найти с помощью поиска.
binary_search
требует, чтобы диапазон был упорядочен, поэтому ручная реализация будет работать только в том случае, еслиs2
действительно упорядочен. Если ни один из диапазонов не упорядочен, вы можете использоватьstd::find
вместоstd::binary_search
, что будет медленнее (O( n^2 )
для всего алгоритма), но не требует упорядочения. 08.03.2010