copy |
将一个范围中的元素拷贝到新的位置处 |
copy_backward |
将一个范围中的元素按逆序拷贝到新的位置处 |
copy_if C++11 |
将一个范围中满足给定条件的元素拷贝到新的位置处 |
copy_n C++11 |
拷贝 n 个元素到新的位置处 |
fill |
将一个范围的元素赋值为给定值 |
fill_n |
将某个位置开始的 n 个元素赋值为给定值 |
generate |
将一个函数的执行结果保存到指定范围的元素中,用于批量赋值范围中的元素 |
generate_n |
将一个函数的执行结果保存到指定位置开始的 n 个元素中 |
iter_swap |
交换两个迭代器指向的元素 |
move C++11 |
将一个范围中的元素移动到新的位置处 |
move_backward C++11 |
将一个范围中的元素按逆序移动到新的位置处 |
random_shuffle |
随机打乱指定范围中的元素的位置 |
remove |
将一个范围中值等价于给定值的元素删除 |
remove_if |
将一个范围中值满足给定条件的元素删除 |
remove_copy |
拷贝一个范围的元素,将其中值等价于给定值的元素删除 |
remove_copy_if |
拷贝一个范围的元素,将其中值满足给定条件的元素删除 |
replace |
将一个范围中值等价于给定值的元素赋值为新的值 |
replace_copy |
拷贝一个范围的元素,将其中值等价于给定值的元素赋值为新的值 |
replace_copy_if |
拷贝一个范围的元素,将其中值满足给定条件的元素赋值为新的值 |
replace_if |
将一个范围中值满足给定条件的元素赋值为新的值 |
reverse |
反转排序指定范围中的元素 |
reverse_copy |
拷贝指定范围的反转排序结果 |
rotate |
循环移动指定范围中的元素 |
rotate_copy |
拷贝指定范围的循环移动结果 |
shuff le C++11 |
用指定的随机数引擎随机打乱指定范围中的元素的位置 |
swap |
交换两个对象的值 |
swap_ranges |
交换两个范围的元素 |
transform |
对指定范围中的每个元素调用某个函数以改变元素的值 |
unique |
删除指定范围中的所有连续重复元素,仅仅留下每组等值元素中的第一个元素 |
unique_copy |
拷贝指定范围的唯一化(参考上述的 unique)结果 |
copy
将一个范围中的元素拷贝到新的位置处
|
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// copy algorithm example #include #include #include int main () { int myints[]={10,20,30,40,50,60,70}; std::vector std::copy ( myints, myints+7, myvector.begin() ); std::cout << myvector contains:; for (std::vector std::cout << ' ' << *it; std::cout << ' '; return 0; } |
输出:
|
|
myvector contains: 10 20 30 40 50 60 70 |
copy_backward
将一个范围中的元素按逆序拷贝到新的位置处
|
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// copy_backward example #include #include #include int main () { std::vector // set some values: for (int i=1; i<=5; i++) myvector.push_back(i*10); // myvector: 10 20 30 40 50 myvector.resize(myvector.size()+3); // allocate space for 3 more elements std::copy_backward ( myvector.begin(), myvector.begin()+5, myvector.end() ); std::cout << myvector contains:; for (std::vector std::cout << ' ' << *it; std::cout << ' '; return 0; } |
输出:
|
|
myvector contains: 10 20 30 10 20 30 40 50 |
copy_if
将一个范围中满足给定条件的元素拷贝到新的位置处
|
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// copy_if example #include #include #include int main () { std::vector std::vector // copy only positive numbers: auto it = std::copy_if (foo.begin(), foo.end(), bar.begin(), [](int i){return !(i<0);} ); bar.resize(std::distance(bar.begin(),it)); // shrink container to new size std::cout << bar contains:; for (int& x: bar) std::cout << ' ' << x; std::cout << ' '; return 0; } |
输出:
|
|
bar contains: 25 15 5 |
copy_n
拷贝 n 个元素到新的位置处
|
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
// copy_n algorithm example #include #include #include int main () { int myints[]={10,20,30,40,50,60,70}; std::vector myvector.resize(7); // allocate space for 7 elements std::copy_n ( myints, 7, myvector.begin() ); std::cout << myvector contains:; for (std::vector |