遍歷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關鍵之後瞬間清爽了不少。