遍历vector方式
假设有这样的一个vector:
vector<int> line={1,2,3,4,5,6,7,8,9};
需要我们去遍历它。
void showvec(const vector<int>& line) {
for (vector<int>::const_iterator iter = line.cbegin();iter != line.cend(); iter++) {
cout << (*iter) << endl;
}
}
或者使用c++新增的语义auto
void showvec(const vector<int>& line) {
for (auto iter = line.cbegin(); iter != line.cend(); iter++) {
cout << (*iter) << endl;
}
}
利用auto
关键字和:
还有更简洁的写法:
for (auto lin : line) {
cout << lin;
}
同理利用auto
关键字,map也可以遍历也可以很简洁:
#include <iostream>
#include <map>
#include <queue>
using namespace std;
int main()
{
map<int, string> mp;
mp.insert(pair<int,string>(2,"hello"));
mp.insert(pair<int,string>(1,"miaomiaomiao"));
mp.insert(pair<int,string>(3,"world"));
for(auto &p : mp)
cout << p.first << endl;
return 0;
}
输出的顺序是按照键值key大小:1,2,3,
auto关键字
那么在什么时候使用auto关键字呢?当变量定义过于冗长时,可以考虑使用auto关键字代替;比如说C++去遍历一个stl容器,迭代器定义时比较累赘,换成auto关键之后瞬间清爽了不少。