查找函数

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;});

 

posted @ 2024-07-04 15:11  北冥没有鱼  Views(9)  Comments(0Edit  收藏  举报