最大值与最小值
函数原型:
Iterator min_element(Iterator begin ,Iterator end);
Iterator min_element(Iterator begin ,Iterator end ,compFunc op);
Iterator max_element(Iterator begin ,Iterator end);
Iterator max_element(Iterator begin ,Iterator end ,compFunc op);
说明一下compFunc参数。对于min_element(),当第一个元素小于第二个元素时,返回true。对于这个自定义的函数,只要满足
bool (*func)(T ,T)类型了,至于其中的规则,应该是任君为之吧。
搜寻元素
- 在集合中查找指定的(符合要求的)元素。
函数原型:
Iterator find(Iterator begin ,Iterator end , const T & value);
Iterator find_if(Iterator begin ,Iterator end , UnaryPredicate op);
嘿嘿,这里又出现了一元判定词,记得可以是bool (*func)(T &) 形式的函数指针。也可以是bind2nd(指针,T),其实,后者是属于前者的。
- 搜索前n个连续匹配的元素。
这两函数感觉很少会用到。
函数原型:
Iterator search_n(Iterator begin ,Iterator end ,Size count ,const T & value);
Iterator search_n(Iterator begin ,Iterator end ,Size count ,const T & value ,BinaryPredicate op);
如果要查找集合中4个连续大于3的元素,可以这样写:
vector<int>::iterator pos;
pos = search_n(myvec.begin() ,myvec.end() ,4 ,3 ,greater<int>());
- 搜索第一个子区间
Iterator search(Iterator begin ,Iterator end ,Iterator2 begin ,Iterator2 end);
Iterator search(Iterator begin ,Iterator end ,Iterator2 begin ,Iterator2 end ,BinaryPredict op);
第一个函数在第一个集合中搜索出和子区间一样的区间。第二个函数在第一个集合中搜索出满足条件op()的第一个子区间。
- 搜索最后一个区间
Iterator find_end(Iterator ,Iterator ,Iterator2 ,Iterator2);
Iterator find_end(Iterator ,Iterator ,Iterator2 ,Iterator2,BinaryPredicate);
- 搜索某些元素第一次出现的位置。
Iterator find_first_of(Iterator begin,Iterator end,Iterator2 searchBegin ,Iterator2 searchEnd);
Iterator find_first_of(Iterator begin,Iterator end,Iterator2 searchBegin ,Iterator2 searchEnd,BinaryPredicate op);
感觉这个函数和search()差不多。
- 搜索两个连续相等的元素
T adjacent_find(T first ,T last);
T adjacent_find(T first ,T last ,Pred pr);
其中,pr是一个二元判定词对象。