C++中的 range for(范围for)语句

范围 for(range for)语句,对于对于遍历给定序列中的每个元素并对序列中的每个值执行某种操作是非常方便的。

基本语法:

for (declaration : expression)
{
	statement;
}

其中,expression部分是一个对象,用于表示一个序列;declaration部分负责定义一个变量,该变量将被用于访问序列中的基础元素
每次迭代,declaration部分的那个变量,将被初始化为expression部分的下一个元素值
如:

vector<int> vecIntTest(10, 0);//表示将该数组初始化为10个1.

for (auto data : vecIntTest)
{
	cout << data << '\t';//将值依次打印输出
}

这种方法可以结合输入进行使用,如:

int main()
{
	vector<int> vecInt;
	int iTemp;
	
	while (cin >> iTemp)
	{
		vecInt.push_back(iTemp);
	}
	
	for (auto data : vecInt)
	{
		cout << data << '\t';
	}
	cout << endl;

	return 0;
}

以上的这种方式,可以说简化了对于一个序列遍历的代码量,推荐使用。

适用范围:
一个序列,包括各种容器,包括数组,甚至包括字符串。
如:

string strTest = "Hello World";
for (auto c : strTest)//这个地方没有使用引用,一个副本就可以了
{
	cout << c << '\t';
}

以上代码可以延伸为将里面的字符全部变为大写,如下:

string strTest = "Hello World";

for (auto &c : strTest)//注意,这个地方应该使用“引用”
{
	c = toupper(c);//因为使用的是引用,所以改变的是原先的值
}
cout << strTest << endl;//最终的输出结果是HELLO WORLD

根据需求灵活使用“引用”和“非引用”(需要更改原先的值就使用引用,否则就不要使用引用)。

参考书籍:《C++ Primer》

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值