Re[3]: Сравнение vector<shared_ptr>
От: Сыроежка  
Дата: 29.12.11 11:38
Оценка: -1
Здравствуйте, Alexey F, Вы писали:

AF>Здравствуйте, Сыроежка, Вы писали:


AP>>>
AF>...
AP>>>    bool equal = v1 == v2; // здесь хочу получить true вместо false
AF>...
AP>>>

С>>Вы можете воспользоваться стандартным алгоритмом std::lexicographical_compare с предикатом.
AF>Эмм...
AF>

AF>std::lexicographical_compare

AF>Lexicographical less-than comparison
AF>Returns true if range [first1,last1) compares lexicographically less than the range [first2,last2).

AF>Если и говорить про алгоритмы, то нужен std::equal со своим предикатом, но только с проверкой длины векторов:
AF>
AF>bool equal = v1.size() == v2.size() && std::equal( v1.begin(), v1.end(), v2.begin(), predicate );
AF>

AF>Не думаю, что топик-стартеру понравится.

Совершенно не понял, почему вы вместо std::lexicographical_compare предлагаете использлвать std::equal, когда последний не сравнивает размеры диапазонов?! Или это вы так стараетесь себе жизнь усложнить?! std::lexicographical_compare вполне подходит для выяснения равны между собой две последовательности или нет.
Меня можно встретить на www.cpp.forum24.ru
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.