●sort
1.功能描述:
对容器内元素进行排序
2.查看sort定义下底层代码的函数原型:
3.向vector容器中插入10个无序数,并且用sort排序法对其进行升序和降序(内建仿函数greater<数据类型>())的排序。
greater<数据类型>()
#include<iostream> #include<vector> #include<algorithm> //算法头文件 #include<functional> //内建仿函数头文件 using namespace std; void printvector(int value) { cout << value << " "; } void text() { vector<int>v; int n; cout << "请向vector容器中插入10个无序数:"; for (int i = 1; i <= 10; i++) { cin >> n; v.push_back(n); } cout << "sort的升序排序" << endl; sort(v.begin(),v.end()); for_each(v.begin(), v.end(),printvector); cout << endl; cout << "sort的降序排序" << endl; sort(v.begin(), v.end(), greater<int>()); for_each(v.begin(),v.end(),printvector); } int main() { text(); }
●random_shuffle
1.功能描述:
对指定范围内的元素去随机调整顺序
2.查看random_shuffle定义下底层代码的函数原型:
3.向vector容器中插入10个顺序数,用rand_shuffle洗牌算法将这10个顺序数打乱输出。
#include<iostream> #include<vector> #include<algorithm> using namespace std; void printvector(int value) { cout << value << " "; } void text() { vector<int>v; int n; cout << "请向vector容器中插入10个顺序数:"; for (int i = 1; i <= 10; i++) { cin >> n; v.push_back(n); } cout << "输出这10个顺序数:"; for_each(v.begin(),v.end(),printvector); cout << endl; cout << "输出调整乱序后的10个数:"; random_shuffle(v.begin(), v.end()); for_each(v.begin(), v.end(), printvector); cout << endl; } int main() { text(); }
● merge
1.功能描述:
两个有序容器的合并,并且存储到另一指定容器中,合并后指定容器中的序列也是有序的
2.查看merge定义下底层代码的函数原型:
3.向v1容器中插入1~10,v2容器中插入11~20。将两容器使用merge算法合并到指定容器v中并输出。
#include<iostream> #include<vector> #include<algorithm> using namespace std; void printvector(int value) { cout << value << " "; } void text() { vector<int>v1; vector<int>v2; for (int k = 1,i=1,j=11; k <= 10; k++,i++,j++) { v1.push_back(i); v2.push_back(j); } //1 2 3 4 5 6 7 8 9 10 [v1] //11 12 13 14 15 16 17 18 19 20 [v2] cout << "输出v1容器:"; for_each(v1.begin(), v1.end(), printvector); cout << endl; cout << "输出v2容器:"; for_each(v2.begin(), v2.end(), printvector); cout << endl; cout << "两容器合并后,指定容器v为:" << endl; vector<int>v; //指定容器 v.resize(v1.size()+v2.size()); //给指定容器一个空间大小 merge(v1.begin(), v1.end(), v2.begin(), v2.end(), v.begin()); for_each(v.begin(), v.end(), printvector); } int main() { text(); }
●reverse
1.功能描述:
将容器内元素进行反转
2.查看reverse定义下底层代码的函数原型:
3.使用reverse算法去反转v1容器中1~9到v2容器中并输出。
#include<iostream> #include<vector> #include<algorithm> using namespace std; void printvector(int value) { cout << value << " "; } void text() { vector<int>v; for (int i = 1; i <= 10; i++) { v.push_back(i); } cout << "反转前:" << endl; for_each(v.begin(),v.end(),printvector); cout << endl; cout << "反转后:" << endl; reverse(v.begin(), v.end()); for_each(v.begin(), v.end(), printvector); } int main() { text(); }