C++11 基于范围的for循环

转载自
https://blog.csdn.net/m_buddy/article/details/72854199

一般情况下在C++下遍历一个容器的方法是这样的

std::vector<int> array = {1, 2, 3, 4, 5};
 
for(auto it=array.begin(), it !=array.end(); ++it)
{
	std::cout << *it << "\t";
}

现在,C++11中有了基于范围的for循环,那么之前我们写的遍历容器的方法就可以写成这样

for(auto item : array)
{
	cout << item << "\t";
}

上面的代码都是对容器进行只读式访问,在for循环中也可以对容器中的值进行修改操作:

for(auto& item : array)
{
	cout << item++ << "\t";
}

(1)auto自动推导出的类型是容器中的value_type,而不是迭代器

std::map<std::string, int> array = {{"a", 1}, {"b", 2}, {"c", 3}};
for(auto& item : array)
{
	std::cout << item.first << "->" << item.sencond << std::endl;
}

注意:上面for循环的推导变量item取first和second元素的时候使用的是“.”操作符,而不是“->”操作符,是因为item不是迭代器类型的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值