查找函数
1.std::find
auto found = std::find(vec.cbegin(),vec.cend(),value);
2.std::find_if
3.std::count
int count = std::count(vec.cbegin(),vec.cend(),value);
4.std::count_if
int count = std::count_if(vec.cbegin(),vec.cend(),[](auto element){return element > 0;});
// 以下方法需要保证升序序列
5.std::upper_bound(二分查找)
查找第一个大于value的item
auto item = std::upper_bound(vec.cebgin(),vec.cend(),value);
查找第一个不满足comp的item
auto item = std::upper_bound(vec.cbegin(),vec.cend(),value,[](auto element,auto value){return value >= element;});
6.std::lower_bound(二分查找)
查找第一个大于等于value的item
auto item = std::lower_bound(vec.cbegin(),vec.cend(),value);
查找第一个满足compare的item
auto item = std::lower_bound(vec.cbegin(),vec.cend(),value,[](auto value,auto element){return element >= value;});
7.std::binary_search
bool found = std::binary_search(vec.cbegin(),vec.cend(),value):
8.std::adjacent_find
在一个序列中查找第一对相邻的相等或者compare为true的元素,并返回指向第一个元素的迭代器。
auto found = std::adjacent_find(vec.cbegin(),vec.cend());
auto found = std::adjacent_find(vec.cbegin(),vec.cend(),[](auto first,auto second){ return second < first;});