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_遍历算法的主要内容,如果未能解决你的问题,请参考以下文章

STL_算法_Heap算法(堆排)(精)

STL_算法_Heap算法(堆排)(精)

STL_算法_Heap算法(堆排)(精)

STL容器__简化版

STL容器__简化版

STL_算法_查找算法(findfind_if)