演示两个常用的算法:for_each和sort
#include <iostream> #include <stdlib.h> #include <algorithm> #include <vector> #include <cmath> using namespace std; #pragma warning(disable:4996) void myfunction(int i) { cout << "(" << i<<")"; } int mycompare(const int &a, const int &b) { return a < b; } int main() { vector<int> m(5); for (int i = 0; i < 5; i++) { m[i] = i + 1; } // 遍历这个数组的元素,并调用用户自己写的函数去打印数据 for_each(m.begin(), m.end(), myfunction); printf(" ----------------排序前------------------ "); vector<int> v(10); for (int i = 0; i < 10; i++) { v[i] = rand() % 10; } for (int i = 0; i < 10; i++) { printf("%d ",v[i]); } printf(" ----------------排序后------------------ "); //STL对数组进行排序的时候,STL实现了排序算法,但是排序的标准可以由用户自己来定义 sort(v.begin(),v.end(),mycompare); for (int i = 0; i < 10; i++) { printf("%d ", v[i]); } system("pause"); return 0; }
运行结果:
(1)(2)(3)(4)(5)
----------------排序前------------------
1
7
4
0
9
4
8
8
2
4
----------------排序后------------------
0
1
2
4
4
4
7
8
8
9