文章目录
修正序列算法
修正序列算法的有些操作会改变容器的内容。例如,把一个容器的部分内容复制到同一个容器的另一个部分,或者用指定值填充容器。
函数 | 算法 |
---|---|
copy(first, last, first2) | 复制 |
copy_backward(first, last, first2) | 逆向复制 |
fill(first, last, val) | 改填元素值 |
generate(first, last, func) | 以指定动作的运算结果填充特定范围内的元素 |
partition(first, last, pred) | 切割 |
random_shuffle(first, last) | 随机重排 |
remove(first, last, val) | 移除某种元素,但不删除 |
replace(first, last, val1, val2) | 取代某种元素 |
rotate(first, middle, last) | 旋转 |
reverse(first, last) | 颠倒元素次序 |
swap(it1, it2) | 置换 |
swap_ranges(first, last, first2) | 置换指定范围 |
transform(first, last, first2, func) | 以两个序列为基础,交互作用产生第 3 个序列 |
unique(first, last) | 将重复的元素折叠压缩,变成唯一的 |
fill(first, last, val)
把值 val 复制到迭代器 first 和 last 指明范围内的各个元素中。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void Test_fill()
{
vector<int> int_vector;
for (size_t i = 0; i < 10; i++) int_vector.push_back(i);
cout << "Vector:";
for (int item : int_vector) cout << item << ' ';
cout << endl;
fill(int_vector.begin()