概述
- STL常用算法主要分布在<algorithm>,<functional>和<numeric>中
- <algorithm>定义了比较、交换、查找、遍历、复制、修改等操作。
- <numeric>定义了简单数学运算的模板函数。
- <functional>定义了模板类,用以声明函数对象。
常用算法
1. copy
容器内指定范围内的元素,拷贝到另一容器中。
vector<int> s = { 1,3,5,7 };
vector<int> d;
d.resize(s.size()); //分配空间
copy(s.begin(), s.end(), d.begin());
2. replace
容器内指定范围内的元素,修改为新的元素。
vector<int> v = { 1, 3, 5, 3, 7 };
replace(v.begin(), v.end(), 3, 30); //将v中所有3修改为30
3. replace_if
容器内指定范围内满足条件的元素,修改为新的元素。
vector<int> v = { 1, 3, 5, 3, 7 };
replace_if(v.begin(), v.end(), [](int val) { //将v中所有小于5的元素修改为30
return val < 5;
}, 30);
4. swap
互换两个容器的元素。
vector<int> v1 = { 1, 3, 5, 7, 9};
vector<int> v2 = { 2, 4, 6, 8 };
swap(v1,v2);