STL Algorithms 非变易算法
存在:
bool all_of(Iterator first, Iterator last, pred) //如果所有元素都符合 pred 或(容器为空)返回 true ,否则返回 false。 bool any_of(Iterator first, Iterator last, pred) //如果有元素符合 pred ,则返回 true ,否则返回 falst。 bool none_of(Iterator first, Iterator last, pred) //如果没有元素符合 pred, 则返回 true, 否则返回 false。
遍历:
Function for_each(Iterator first, Iterator last, Function fun) //遍历容器,对每个元素执行 fun 操作
查找:
Iterator find(Iterator first, Iterator last, const T& val) //查找值为 val 的元素,并返回该迭代器,若无,则返回 last Iterator find_if(Iterator firtst, Iterator last, pred) //查找符合 pred 的元素,并返回该迭代器,若无,返回 last Iterator find_if_not(Iterator first, Iterator last, pred) //查找不符合 pred 的元素,并返回该迭代器,若无,返回 last Iterator find_end(Iterator first1, Iterator last1, Iterator first2, Iterator last2, pred) //从后往前查找序列1中与序列2匹配的子序列,返回首个元素的迭代器 Iterator find_first_of(Iterator first1, Iterator last2, Iterator first2, Iterator last2, pred) //从前往后查找序列1中与序列2匹配的子序列,返回首个元素的迭代器 Iterator adjacent_find(Iterator first, Iterator last, pred) //查找相邻元素相等,返回第一个的迭代器
数量:
int count(Iterator first, Iterator last,const T& val) //返回与val值相等的个数,没有为0 int count_if(Iterator first, Iterator last, pred) //返回与pred匹配的元素的个数
pair<Iterator it1, Iterator it2> mismatch(first1,last1,first2) //first1 和first2 序列一一比较,返回他们值第一次不相等时两边的迭代器 bool equal(Iterator first1, Iterator last1, Iterator first2) //如果 first1 和 first2 序列的元素一一对应相等,返回true,否则返回false bool is_permutation(Iterator first1, Iterator last1, Iterator first2) //判断first1 和first2 序列中元素集是否一样(顺序不一样),一样返回true
查找:
Iterator search(first1, last1, first2, last2); //从左往右在序列1中找子序列2 Iterator search_n(first, last, size count, const T& val); //查找序列中连续count个val值