Vector:
1 #include "stdafx.h" 2 #include3 #include 4 #include 5 using namespace std; 6 int main() 7 { 8 vector v = { 10,98,76,66,67,66,90 }; 9 cout << "排序前的数组: ";10 for (int elem : v) {11 cout << elem << " "; //如何输出12 }13 cout << endl;14 stable_sort(v.begin(), v.end()); //此排序方式为稳定排序,适用于v中有相同元素,如上面有2个66的情况,15 //这样就不会改变两个66的相对位置。如果没有重复元素的话,用sort(v.begin(), v.end())方可 16 cout << "排序后的数组: ";17 for (int elem : v) {18 cout << elem << " "; //如何输出19 }20 cout << endl;21 fill(v.begin()+2, v.end(), 54); //填充22 cout << "此时的数组: "; 23 for (int elem : v) {24 cout << elem << " "; //如何输出25 }26 cout << endl;27 fill_n(v.begin(), 3, 8); //填充的另一种方式28 cout << "此时的数组: ";29 for (int elem : v) {30 cout << elem << " "; //如何输出31 }32 cout << endl;33 return 0;34 }
对于上述输出方式的演变如下:现在用(3)即可
(1)
1 for_each (int elem in v) 2 {3 cout << elem << " "; 4 }
(2)
1 for_each (v.begin(),v.end(),[](int elem) 2 {3 cout << elem << " "; 4 }
(3)
1 for (int elem : v) 2 {3 cout << elem << " ";4 }
字符串大写变小写:
1 #include "stdafx.h" 2 #include3 #include 4 #include 5 #include 6 using namespace std; 7 int main() 8 { 9 string s1 = "hello world.";10 string s2;11 transform(s1.begin(), s1.end(), s2.begin(), toupper); //同样大写变小写就是tolower12 cout << s1 << endl;13 }
二分查找:
1 #include "stdafx.h" 2 #include3 #include 4 #include 5 #include 6 using namespace std; 7 int main() 8 { 9 vector v= { 10,98,76,45,66,67,90 };10 if (binary_search(v.begin(), v.end(),67))11 cout << "Exits!" << endl;12 else13 cout << "Didn't exits!" << endl;14 }
数列反转:
1 #include "stdafx.h" 2 #include3 #include 4 #include 5 #include 6 using namespace std; 7 int main() 8 { 9 vector v= { 10,98,76,45,66,67,90 };10 cout << "反转前的数列为: ";11 for (int elem : v) 12 {13 cout << elem << " "; 14 }15 cout << endl;16 reverse(v.begin(), v.end());17 cout << "反转后的数列为: ";18 for (int elem : v) 19 {20 cout << elem << " "; 21 }22 cout << endl;23 return 0;24 }
条件分区:
1 #include "stdafx.h" 2 #include3 #include 4 #include 5 #include 6 using namespace std; 7 int main() 8 { 9 vector v = { 1,2,3,4,5,6,7,8,9 };10 stable_partition(v.begin(), v.end(), [](int elem)11 {12 return elem % 2 == 0;13 }); 14 for (int elem : v)15 {16 cout << elem << " ";17 }18 cout << endl;19 return 0;20 }
运行结果: