概述
#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;
}
}
最后
以上就是碧蓝汉堡为你收集整理的vector/string以及范围for循环的全部内容,希望文章能够帮你解决vector/string以及范围for循环所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复