标签:过程 16px bsp col 基于 vector null algo stream
【1】基于范围的for循环演化过程
(1)C++98传统写法
1 // C++98 传统写法 2 3 #include <iostream> 4 using namespace std; 5 6 int main() 7 { 8 int arr[5] = { 1, 2, 3, 4, 5 }; 9 10 int* p = nullptr; 11 12 for (p = arr; p < arr + sizeof(arr) / sizeof(arr[0]); ++p) 13 { 14 *p *= 2; 15 } 16 17 for (p = arr; p < arr + sizeof(arr) / sizeof(arr[0]); ++p) 18 { 19 cout << *p << endl; 20 } 21 }
(2)利用模板库std::for_each写法
1 // 利用模板库std::for_each写法 2 3 #include <iostream> 4 #include <algorithm> 5 using namespace std; 6 7 void action1(int& e) { e *= 2; } 8 void action2(int& e) { cout << e << ‘\t‘; } 9 10 int main() 11 { 12 int arr[5] = { 1, 2, 3, 4, 5 }; 13 for_each(arr, arr + sizeof(arr) / sizeof(arr[0]), action1); 14 for_each(arr, arr + sizeof(arr) / sizeof(arr[0]), action2); 15 }
(3)基于范围的for循环
1 // 基于范围的for循环 2 3 #include <iostream> 4 using namespace std; 5 6 int main() 7 { 8 int arr[5] = { 1, 2, 3, 4, 5 }; 9 for (int& e : arr) 10 e *= 2; 11 for (int& e : arr) 12 cout << e << ‘\t‘; 13 }
(4)注意(*i)与 e的区别
1 // 注意(*i)与 e的区别: 2 3 #include <iostream> 4 #include <vector> 5 using namespace std; 6 7 int main() 8 { 9 vector<int> v = { 1, 2, 3, 4, 5 }; 10 for (auto i = v.begin(); i != v.end(); ++i) 11 cout << (*i) << endl; // i是迭代器对象 12 for (auto e : v) 13 cout << e << endl; // e是解引用后的对象 14 }
good good study, day day up.
顺序 选择 循环 总结
标签:过程 16px bsp col 基于 vector null algo stream
原文地址:https://www.cnblogs.com/Braveliu/p/12245989.html