php mysql网站开发项目式教程,贵阳网站建设是什么,为什么我网站打不开,千户微建站平台C11提供了一种新型的for循环形式 - 基于范围的for循环
语法:
for (declaration : expression)
{//循环体
}在上面的语法格式中#xff0c;declaration表示遍历声明#xff0c;在遍历过程中#xff0c;当前被遍历到的元素会被存储到声明的变量中#xff0c;expression是要…C11提供了一种新型的for循环形式 - 基于范围的for循环
语法:
for (declaration : expression)
{//循环体
}在上面的语法格式中declaration表示遍历声明在遍历过程中当前被遍历到的元素会被存储到声明的变量中expression是要遍历的对象它可以是表达式容器数组初始化列表等。
代码如下:
#include vector
#include iostream
using namespace std;int main()
{vectorint v{ 1,2,3,4,5,6,7,8,9 };for (auto it v.begin(); it ! v.end(); it){cout *it ;}cout endl;for (auto item : v)//在这里使用了引用这样就不会拷贝效率更高还能修改元素的值{cout item ;}cout endl;for (auto item : v){cout item ;}cout endl;for (const auto item : v)//既提高效率也不修改值{cout item ;}cout endl;return 0;
}测试结果:
基于范围的for循环需要注意的3个细节:
1.关系型容器
代码如下:
#includeiostream
#include map
#include string
using namespace std;int main()
{mapint, string mp{ {12, Tom}, { 13,jack }, { 33,mike }};for (const auto item : mp){cout item.first item.second endl;}cout ----------------------- endl;for (auto it mp.begin(); it ! mp.end(); it){cout it-first it-second endl;}return 0;
}在上面的例子中使用了两种方法对map容器进行遍历通过对比有两点需要注意:
测试结果:
2.元素只读 代码如下:
#include iostream
#include setusing namespace std;int main()
{setintst{ 1,2,3,4,5,6 };for (auto item : st){cout item endl;//error,不能给常量赋值}return 0;
}代码如下:
#include iostream
#includemap
#include stringusing namespace std;int main()
{mapint, stringm{ {12,Tom},{14,jack},{19,bom} };for (auto item : m){cout item.first item.second endl;//error}return 0;
}3.访问次数 代码如下:
#include iostream
#include vector
#include stringusing namespace std;vectorintv{ 1,2,3,4,5,6 };vectorint getRange()
{cout get vector range ... endl;return v;
}int main()
{for (auto val : getRange()){cout val ;}cout endl;return 0;
}测试结果: