C++11的标准以后才能使用
for(:)
比如 for(auto count : counts)
其循环的目的是将,容器counts的每个元素均遍历一遍。
举个例子:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> vecs;
vecs.push_back(1);
vecs.push_back(2);
vecs.push_back(3);
vecs.push_back(4);
vecs.push_back(5);
//当前容器内有 1 2 3 4 5
for(auto vec:vecs)
{
cout << vec << " ";
}
cout << endl;
for(int vec1:vecs)
{
cout << vec1 << " ";
}
return 0;
}
输出结果如下:
auto
从上面的例子我们发现,auto可以在声明变量的时候根据变量初始值的类型自动为此变量选择匹配的类型,类似的关键字还有decltype。
在一些情况下auto的使用给我们做题带来便利,比如使用迭代器时,用auto代替,
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> vecs;
vecs.push_back(1);
vecs.push_back(2);
vecs.push_back(3);
vecs.push_back(4);
vecs.push_back(5);
//当前容器内有 1 2 3 4 5
for(vector<int>::iterator a = vecs.begin(); a != vecs.end();a++)
{
cout << *a << " " ;
}
cout<< endl;
for(auto a = vecs.begin(); a != vecs.end(); a ++)
{
cout << *a << " ";
}
return 0;
}
用auto代替vector::iterator节约更多的时间。