Я посмотрел на определение шаблона, и оказалось, что параметрам нужны итераторы для диапазона и предиката. Я передал предикат vector.begin (), ... end () и std :: string, но по-прежнему получаю много ошибок времени компиляции, связанных с множеством элементов библиотеки boost. Могу я увидеть наглядный пример использования boost :: algorithm :: contains, пожалуйста?
boost :: algorithm :: contains
Ответы (1)
Это довольно просто, я думаю, вы передаете итераторы, когда должны передавать контейнеры.
std::string s = "fishing";
std::cout << boost::algorithm::contains(s, "is") << std::endl;
std::vector<int> v {1,2,3,5,7,2,7,4,5,8};
std::vector<int> v2 {5,7,2,7,4};
std::vector<int> v3 {5,7,2,7,3};
std::cout << boost::algorithm::contains(v, v2) << std::endl;
std::cout << boost::algorithm::contains(v, v3) << std::endl;
person
us2012
schedule
26.03.2013
Да, я, должно быть, неправильно прочитал параметры функции шаблона или неправильно понял, что передать. Тогда я так понимаю, что диапазон относится к контейнеру в STL, а не к итератору. Спасибо за хороший пример.
- person Mushy; 26.03.2013
@Mushy Ranges - это на самом деле больше, чем просто контейнеры, если вы действительно заинтересованы в этом, посмотрите документацию Boost Range 2.0 или Google, чтобы найти ключевую заметку Alexandrescu boostcon о диапазонах.
- person us2012; 26.03.2013