STL_算法_06_遍历算法
Posted CppSkill
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STL_算法_06_遍历算法相关的知识,希望对你有一定的参考价值。
1、
1.1、第6讲 PPT.42
◆ for_each() : 用指定函数依次对指定范围内所有元素进行迭代访问。该函数不得修改序列中的元素。
ZC: VC6 测试代码:
1 #ifdef WIN32 2 #pragma warning (disable: 4786) 3 #endif 4 5 #include <string> 6 #include <vector> 7 #include <set> 8 9 #include <algorithm> // 算法 10 #include <numeric> // 算法 11 #include <functional> // 算法 12 13 using namespace std; 14 15 void Show(const int &iItem) 16 { 17 //cout << iItem; 18 printf("iItem : %d\n", iItem); 19 } 20 21 void main() 22 { 23 int iArray[] = {0,1,2,3,4}; 24 vector<int> vecInt(iArray, iArray+sizeof(iArray)/sizeof(iArray[0])); 25 for_each(vecInt.begin(), vecInt.end(), Show); 26 }
ZC:控制台输出:
1 iItem : 0 2 iItem : 1 3 iItem : 2 4 iItem : 3 5 iItem : 4 6 Press any key to continue
1.2、第6讲 PPT.42
◆ transform() : 与for_each类似,遍历所有元素,但可对容器的元素进行修改
ZC: VC6 测试代码:
1 #ifdef WIN32 2 #pragma warning (disable: 4786) 3 #endif 4 5 #include <string> 6 #include <vector> 7 #include <set> 8 9 #include <algorithm> // 算法 10 #include <numeric> // 算法 11 #include <functional> // 算法 12 13 using namespace std; 14 15 int Increase (int i) 16 { 17 return i+1; 18 } 19 20 void main() 21 { 22 vector<int> vecIntA; 23 vecIntA.push_back(1); 24 vecIntA.push_back(3); 25 vecIntA.push_back(5); 26 vecIntA.push_back(7); 27 vecIntA.push_back(9); 28 29 transform(vecIntA.begin(), vecIntA.end(), vecIntA.begin(), Increase); //vecIntA : {2,4,6,8,10} 30 31 int iIdx = 0; 32 vector<int>::iterator it = vecIntA.begin(); 33 while (it != vecIntA.end()) 34 { 35 printf("[%02d] ==> %d\n", iIdx, *it); 36 it ++; 37 } 38 }
ZC:控制台输出:
1 [00] ==> 2 2 [00] ==> 4 3 [00] ==> 6 4 [00] ==> 8 5 [00] ==> 10 6 Press any key to continue
?.?、第6讲 PPT.?
◆
ZC: VC6 测试代码:
ZC:控制台输出:
X
以上是关于STL_算法_06_遍历算法的主要内容,如果未能解决你的问题,请参考以下文章