我是靠谱客的博主 曾经花瓣,这篇文章主要介绍C/C++ for循环的几种用法一、for (int i = 0; i < N; i++)二、for_each三、 for (类型 变量 : 数组或容器)四、全部代码五、总结,现在分享给大家,希望可以做个参考。
简单的讲一下for循环的三种用法!
用的编译工具是:Visual Studio 2017
一、for (int i = 0; i < N; i++)
这是最简单,也是最常用的方法:
复制代码
1
2
3
4
5
6
7
8int nums[] = { 3, 4, 2, 9, 15, 267 }; const int N = 6; for (int i = 0; i < N; i++) { cout << nums[i] << " "; } cout << endl << endl;
这种方式没什么好讲,重点看下面两种!
二、for_each
需包含头文件:#include < algorithm >
1. for_each(nums, nums + N, vecFunc);
这种方式需要借助一个函数,遍历将数组中的每个值在函数中进行操作。
其中nums是一个数组,N是数组的个数,vecFunc是一个函数
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29#include <iostream> // std::cout #include <algorithm> // std::for_each #include <vector> // std::vector using namespace std; // 函数 void vecFunc(int &i) { cout << i << endl; i = 10; // 更改数组的值 } int main() { int nums[] = { 3, 4, 2, 9, 15, 267 }; const int N = 6; cout << "for_each - 数组:" << endl; for_each(nums, nums + N, vecFunc); // 注意:N的值不能大于数组的长度,否则会越界 // 数组更改后的数组的值 for (int i = 0; i < N; i++) { cout << nums[i] << " "; } cout << endl << endl; return 0; }
运行截图:
函数中,设置的参数是传引用,所以我们在对数组的值操作时,也可以更改它的值。
2. for_each (vec.begin(), vec.end(), vecFunc);
当然,for_each也可以适用于容器,使用迭代器的方式遍历,并更改其中的值,当然也需要借助函数,更上面类似。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28#include <iostream> // std::cout #include <algorithm> // std::for_each #include <vector> // std::vector using namespace std; void vecFunc(int &i) { cout << i << endl; i = 10; } int main() { vector<int> vec; // vector容器 vec.push_back(1); // 插入值 vec.push_back(2); cout << "for_each - vector:" << endl; for_each (vec.begin(), vec.end(), vecFunc); // vec.begin():指容器的第一个值;vec.end():指容器的最后一个值的下一个值 for (int i = 0; i < vec.size(); i++) { cout << vec.at(i) << " "; } return 0; }
运行截图:
三、 for (类型 变量 : 数组或容器)
1. for (int var : nums)
其中nums是一个数组
这种方式可以用来遍历数组,但是不能改变数组中的值。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18#include <iostream> // std::cout #include <algorithm> // std::for_each #include <vector> // std::vector using namespace std; int main() { int nums[] = { 3, 4, 2, 9, 15, 267 }; const int N = 6; cout << "for - 数组:" << endl; for (int var : nums) { cout << var << endl; } return 0; }
运行截图:
2. for (int var : vec)
其中vec是一个int类型的容器
这种方式可以用来遍历容器,但是不能改变容器中的值。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20#include <iostream> // std::cout #include <algorithm> // std::for_each #include <vector> // std::vector using namespace std; int main() { vector<int> vec; vec.push_back(1); vec.push_back(2); cout << "for - vector:" << endl; for (int var : vec) { cout << var << endl; } cout << endl; return 0; }
运行截图:
四、全部代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51#include <iostream> // std::cout #include <algorithm> // std::for_each #include <vector> // std::vector using namespace std; void vecFunc(int &i) { cout << i << endl; i = 10; } int main() { vector<int> vec; vec.push_back(1); vec.push_back(2); cout << "for_each - vector:" << endl; for_each (vec.begin(), vec.end(), vecFunc); for (int i = 0; i < vec.size(); i++) { cout << vec.at(i) << " "; } int nums[] = { 3, 4, 2, 9, 15, 267 }; const int N = 6; cout << "for_each - 数组:" << endl; for_each(nums, nums + N, vecFunc); for (int i = 0; i < N; i++) { cout << nums[i] << " "; } cout << endl << endl; cout << "for - vector:" << endl; for (int var : vec) { cout << var << endl; } cout << endl; cout << "for - 数组:" << endl; for (int var : nums) { cout << var << endl; } return 0; }
五、总结
好了,for几种用法已经讲完了,个人感觉如果只是遍历的话,第三种会比较简便。但是要注意,第三种方式是不可以更改值的。
最后
以上就是曾经花瓣最近收集整理的关于C/C++ for循环的几种用法一、for (int i = 0; i < N; i++)二、for_each三、 for (类型 变量 : 数组或容器)四、全部代码五、总结的全部内容,更多相关C/C++内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复