目录
sort(iterator begp iterator end,_Pred);
// 按值查找元素,找到返回指定位置迭代器,找不到返回结束迭代器位置
// beg开始选代器
//end结束选代器
//_Pred 谓词
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
-
- using namespace std;
-
- void myprint(int t)
- {
- cout << t << " ";
- }
-
- void test01()
- {
- vector<int>v;
- v.push_back(20);
- v.push_back(70);
- v.push_back(60);
- v.push_back(50);
- v.push_back(90);
- v.push_back(10);
-
- sort(v.begin(),v.end());//默认升序
- for_each(v.begin(),v.end(),myprint);
- cout << endl;
-
- sort(v.begin(),v.end(),greater<int>());//降序
- for_each(v.begin(),v.end(),myprint);
- cout << endl;
- }
-
-
- int main()
- {
- test01();
- return 0;
- }
random_shuffle(iterator beg, iterator end);
//指定范围内的元素随机调整次序
// beg开始选代器
//end结束迭代器
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
-
- using namespace std;
-
- void myprint(int t)
- {
- cout << t << " ";
- }
-
- void test01()
- {
- vector<int>v;
- for(int i =0;i<10;i++)
- {
- v.push_back(i);
- }
- random_shuffle(v.begin(),v.end());
- for_each(v.begin(),v.end(),myprint);
- cout << endl;
-
- }
-
- int main()
- {
- test01();
- return 0;
- }
编译运行
merge(iterator begl, iterator end1, iterator beg2, iterator end2, iterator dest);// 容器元素合并,并存储到另一容器中
/注意:两个容器必须是有序的
// beg1容器1开始迭代器
//end1 容器1结束选代器
//beg2容器2开始选代器
// end2容器2结束迭代器
// dest目标容器开始迭代器
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
-
- using namespace std;
-
- void myprint(int t)
- {
- cout << t << " ";
- }
-
- void test01()
- {
- vector<int>v;
- vector<int>v2;
- for(int i =0;i<10;i++)
- {
- v.push_back(i);
- v2.pish_back(i+1);
- }
-
- vector<int>v3;
- //开辟空间
- v3.resize(v2.size()+v.size());
- merge(v.begin(),v.end(),v2.begin(),v2.end(),v3.begin());
- //0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10
- for_each(v3.begin(),v3.end(),myprint);
- cout << endl;
- }
-
- int main()
- {
- test01();
- return 0;
- }
reverse(iterator beg, iterator end);
// 反转指定范围的元素
// beg开始选代器
// end结束选代器
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
-
- using namespace std;
-
- void myprint(int t)
- {
- cout << t << " ";
- }
-
- void test01()
- {
- vector<int>v;
- for(int i =0;i<10;i++)
- {
- v.push_back(i);
- }
- cout << "反转前:" << endl;
- for_each(v.begin(),v.end(),myprint);
- cout << endl;
-
- reverse(v.begin(),v.end());
-
- cout << "反转后:" << endl;
- for_each(v.begin(),v.end(),myprint);
- cout << endl;
- }
-
- int main()
- {
- test01();
- return 0;
- }
编译运行
copy(iterator beg, iterator end, iterator dest);
// beg开始选代器
//end 结束选代器
//dest目标起始选代器
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
-
- using namespace std;
-
- void myprint(int t)
- {
- cout << t << " ";
- }
-
- void test01()
- {
- vector<int>v;
- for(int i =0;i<10;i++)
- {
- v.push_back(i);
- }
- vector<int>v2;
- //给目标容器开辟空间
- v2.resize(v.size());
- copy(v.begin(),v.end(),v2.begin());
- //0 1 2 3 4 5 6 7 8 9
- for_each(v2.begin(),v2.end(),myprint);
- cout << endl;
- }
-
- int main()
- {
- test01();
- return 0;
- }
replace(iterator beg,iterator end,oldvalue ,newvalue);
//将区间内旧元素督换成新元素
//beg开始选代器
//end结束选代器
// oldvalue 旧元素
//newvalue 新元素
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
-
- using namespace std;
-
- void myprint(int t)
- {
- cout << t << " ";
- }
-
- void test01()
- {
- vector<int>v;
- for(int i =0;i<10;i++)
- {
- v.push_back(i);
- }
-
- replace(v.begin(),v.end(),2,3);
- //0 1 3 3 4 5 6 7 8 9
- for_each(v.begin(),v.end(),myprint);
- cout << endl;
- }
-
- int main()
- {
- test01();
- return 0;
- }
replace if(iterator beg, iterator end,pred, newvalue);
// 按条件替换元素,满足条件的替换成指定元素
// beg开始选伦器
//end结束选代器
//_pred谓词
// newvalue 替换的新元素
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
-
- using namespace std;
-
- void myprint(int t)
- {
- cout << t << " ";
- }
-
- class predicate
- {
- public:
- bool operator()(int val)
- {
- return val >= 5;
- }
- };
-
- void test01()
- {
- vector<int>v;
- for(int i =0;i<10;i++)
- {
- v.push_back(i);
- }
- //如果大于等于五 替换成四
- replace_if(v.begin(),v.end(),predicate(),4);
- //0 1 2 3 4 4 4 4 4 4
- for_each(v.begin(),v.end(),myprint);
- cout << endl;
- }
-
- int main()
- {
- test01();
- return 0;
- }
swap(container c1, container c2);
// 互换两个客器的元素
// c1容器1
// c2容器2
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
-
- using namespace std;
-
- void myprint(int t)
- {
- cout << t << " ";
- }
-
- void test01()
- {
- vector<int>v1;
- vector<int>v2;
-
- for(int i =0;i<10;i++)
- {
- v1.push_back(i);
- v2.push_back(i+100);
- }
-
- cout << "互换前" << endl;
- for_each(v1.begin(),v1.end(),myprint);
- cout << endl;
- for_each(v2.begin(),v2.end(),myprint);
- cout << endl;
- swap(v1,v2);
-
- cout << "互换后" << endl;
- for_each(v1.begin(),v1.end(),myprint);
- cout << endl;
- for_each(v2.begin(),v2.end(),myprint);
- cout << endl;
- }
-
- int main()
- {
- test01();
- return 0;
- }
编译运行