我是靠谱客的博主 曾经花瓣,最近开发中收集的这篇文章主要介绍C/C++ for循环的几种用法一、for (int i = 0; i < N; i++)二、for_each三、 for (类型 变量 : 数组或容器)四、全部代码五、总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

简单的讲一下for循环的三种用法!
用的编译工具是:Visual Studio 2017


一、for (int i = 0; i < N; i++)

这是最简单,也是最常用的方法:

int 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是一个函数

#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也可以适用于容器,使用迭代器的方式遍历,并更改其中的值,当然也需要借助函数,更上面类似。

#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是一个数组
这种方式可以用来遍历数组,但是不能改变数组中的值

#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类型的容器
这种方式可以用来遍历容器,但是不能改变容器中的值

#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;
}

运行截图:
在这里插入图片描述


四、全部代码

#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++ for循环的几种用法一、for (int i = 0; i < N; i++)二、for_each三、 for (类型 变量 : 数组或容器)四、全部代码五、总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部