vector/string以及范围for循环

#include <iostream>
#include <vector>//必须包含vector的头文件;就如当用到string时也应该有#include<string>一样;
using namespace std;
int main()
{
	vector<int> v = { 0,1,2,3,4,5,6,7,8,9 };
	for (auto &r : v)//要改变v中的值,必须用引用类型;
		r *= 2;
	for (auto i : v)//因为只是输出并不打算改变v中的值,所以不是引用;
	{
		cout << i << " ";
               //当然这里也可以像下面一样用个普通的for循环然后用解引用(如下面的*e)输出;
	}
	cout <<endl<< "常规for语句:"<<endl;
	for (auto beg = v.begin(), end = v.end(); beg != end; ++beg)
	{
		auto &b = *beg;
		b *= 3;
	}
	for (auto e = v.begin(); e != v.end(); ++e)
		cout << *e << " ";
	return 0;
范围for用于数组时:(对于多维数组,应该理解为数组的数组...重点是理解各自数组内的"元素"到底是数组还是其他的基本类型)
#include <iostream>
using namespace std;
int main()
{
	constexpr size_t rowCnt = 3, colCnt = 4;
	int ia[rowCnt][colCnt];
	for (size_t i = 0; i != rowCnt; ++i)//外层数组,当然它的3个元素自然就是内层数组;
	{
		for (size_t j = 0; j != colCnt; ++j)//内层数组,它的元素是4个整数;
		{
			ia[i][j] = i*colCnt + j;	
			cout  << ia[i][j]<< " ";
		}
     cout << endl;
	}
	size_t cnt = 0;
	for(auto &row:ia)//第一个必须引用,不然外层数组的元素会被编译器自动转换成指向该数组内首元素的指针!详见C++ primer P114
		for (auto &col : row)
		{
			col = cnt;
			++cnt;
		}
	for (auto p = begin(ia); p != end(ia); ++p)
	{
		for (auto q = begin(*p); q != end(*p); ++q)
		{
			cout << *q << " ";
		}
		cout << endl;
	}
	return 0;
}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值