Loading... ## 算法简介: sort;//对容器内元素进行排序 random_shuffle;//洗牌,指定范围内的元素随机调整次序 merge;//容器元素合并,并存储到另一个容器中 reverse;//反转指定范围内的元素 ## sort ### 功能描述: 对容器内元素进行排序 ### 函数原型: sort(iterator beg, iterator end, _pred) //按值查找元素,找到返回指定位置迭代器,找不到返回结束迭代器位置 //beg开始迭代器 //end结束迭代器位置 //_pred谓词 ### 示例: ```cpp #include<iostream> #include<vector> #include<algorithm> #include<string> using namespace std; class decline { public: bool operator()(const int a, const int b) { return a > b; } }; void print(int val) { cout << val << " "; } void text1()//内置数据类型 { vector<int>v1; v1.push_back(0); v1.push_back(6); v1.push_back(1); v1.push_back(8); v1.push_back(1); v1.push_back(6); cout << "排序前!"; for_each(v1.begin(), v1.end(), print); cout <<endl<< "升序!"; sort(v1.begin(), v1.end()); for_each(v1.begin(), v1.end(), print); cout << endl << "降序!"; sort(v1.begin(), v1.end(), decline()); for_each(v1.begin(), v1.end(), print); } int main() { text1(); return 0; } ``` ### 功能描述: 洗牌 ,指定范围内的元素随机调整次序 ### 函数原理: random_shuffle(iterator beg, iterator end); //指定范围内的元素随机调整次序 //beg开始迭代器 //end结束迭代器 ### 示例: ```cpp #include<iostream> #include<vector> #include<algorithm> #include<ctime> using namespace std; void print(int val) { cout << val << " "; } void text1()//内置数据类型 { vector<int>v; for (int i = 0; i < 10; i++) { v.push_back(i); } cout << "打乱前:" << endl; for_each(v.begin(), v.end(), print); cout << endl; cout << "打乱后:" << endl; random_shuffle(v.begin(), v.end()); for_each(v.begin(), v.end(), print); } int main() { srand((unsigned int)time(NULL)); text1(); return 0; } ``` ## merge ### 功能描述: 两个容器元素合并,并存储到另一个容器中 ### 函数原型: merge(iterator beg1, iterator end1, iterator beg2, iterator end2,iterator beg3) //容器元素合并,并存储到另一个容器中 //注意:两个容器必须是有序的 //beg1 容器1开始迭代器 //end1 容器1结束迭代器 //beg2 容器2开始迭代器 //end2 容器2结束迭代器 //beg3 容器3开始迭代器(目标容器) ### 示例: ```cpp #include<iostream> #include<vector> #include<algorithm> #include<ctime> using namespace std; void print(int val) { cout << val << " "; } void text1()//内置数据类型 { vector<int>v; vector<int>v1; for (int i = 0; i < 10; i++) { v.push_back(i); v1.push_back(i+10); } vector<int>Target_v; Target_v.resize(v.size() + v1.size()); merge(v.begin(), v.end(), v1.begin(), v1.end(), Target_v.begin()); for_each(Target_v.begin(), Target_v.end(), print); } int main() { srand((unsigned int)time(NULL)); text1(); return 0; } ``` ## reverse ### 功能描述: 将容器内元素进行反转 ### 函数原型: reverse(iterator beg, iterator end) //反转指定范围的元素 //beg开始迭代器 //end结束迭代器 ### 示例: ```cpp #include<iostream> #include<vector> #include<algorithm> using namespace std; void print(int val) { cout << val << " "; } void text1()//内置数据类型 { vector<int>v; vector<int>v1; for (int i = 0; i < 10; i++) { v.push_back(i); v1.push_back(i+10); } cout << "反转前:" << endl; for_each(v.begin(), v.end(), print); cout <<endl<< "反转后:" << endl; reverse(v.begin(), v.end()); for_each(v.begin(), v.end(), print); } int main() { text1(); return 0; } ``` 最后修改:2021 年 09 月 24 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果文章有用,请随意打赏。