C++ 11 vector 的遍歷,auto關鍵詞(未完)

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章