find和find_if
find: 根据equality操作符,循环查找[first,last)内的所有元素,找出第一个匹配"等同(equality)条件"者。如果找到,就返回一个InputIterator指向该元素,否则返回迭代器last。
find_if:根据指定的pred运算条件(以仿函数表示),循环查找[first,last)内的所有元素,找出第一个令pred运算结果true者。如果找到就返回一个InputIterator指向该元素,否则就返回迭代器last。
bool odd(int i) { return i % 2; }
find(v1.begin(), v1.end(), 42);找到V1中第一个为42的并返回迭代器位置
find_if(v1.begin(), v1.end(), odd); 找到第一个令odd返回true的元素位置
reverse和reverse_copy
reverse函数的作用是:反转一个容器内元素的顺序。reverse函数的作用是:反转一个容器内元素的顺序。
reverse_copy函数和reverse函数的唯一区别在于:reverse_copy会将结果拷贝到另外一个容器中,不影响原容器的内容。
reverse(str.begin(),str.end());
fill和fill_n(向一个容器中填入,必须是长度确定的容器)
fill只能接受两个迭代器和内容,fill_n能够接受起始位置+数量+内容
back_inserter
插入迭代器,保证算法有足够的容纳空间来容纳输出的元素,来一个加一个位置。
vector<int> v2;
fill_n(back_inserter(v2),10,0)
reverse_copy(v1.begin(), v1.end(), back_inserter(v2));