2012-04-12 2 views
2

Имеет ли STL или Boost алгоритм сравнения содержимого контейнеров разных типов. Если не кто-нибудь написал такой алгоритм. Я бы назвал это equal_contents или просто equals. Это полезно, если утверждать, что некоторые алгоритмы возвращают одинаковое содержимое для разных типов входных контейнеров.Equal C++ STL Содержимое контейнера Алгоритм

ответ

8

Да, есть алгоритм std::equal. Вам нужно передать итераторы к этому алгоритму, тип контейнера не имеет значения.

+2

Одно предупреждение: вам нужно проверить, что размеры совпадают в первую очередь; в противном случае 'std :: equal' может либо дать ложный положительный результат, либо пропустить конец одного из них. –

+0

@Mike Seymour Как это возможно с итераторами ?? – innochenti

+0

@innochenti: Предположим, что у вас есть один вектор размером 3 и набор с размером 2, и вы используете равный: 'std :: equal (v.begin(), v.end(), s.begin()); '. В этом случае 'equal' будет пытаться разыменовать' s.end() '. – Naveen

Смежные вопросы