c++中STL 關於map,set,vector的用法
阿新 • • 發佈:2018-11-05
一、vector
vector相當於是一個可以存放一個任意資料型別的一個容器,通過迭代器可以對其進行相應的操作,如下:
1 vector<CString> arrTest; 2 arrTest.push_back(L"你"); 3 arrTest.push_back(L"我"); 4 arrTest.push_back(L"他"); 5 6 vector<CString>::iterator iterArr = arrTest.begin(); 7 for (; iterArr != arrTest.end(); ++iterArr) 8 { 9 cout << CW2A(*iterArr) << endl; 10 } 11 12 cout << CW2A(arrTest.at(1)) << endl; 13 14 cout << endl;
輸出:
你
我
他
我
二、map
map其實和vector很像,就是把由一個引數變為了兩個引數,參考程式碼如下:
map<CString, CString> mapTest; mapTest[L"哈哈"] = L"呵呵"; mapTest[L"學生"] = L"老師"; mapTest[L"職工"] = L"領導"; map<CString, CString>::iterator iterMap = mapTest.begin(); for(; iterMap != mapTest.end(); ++iterMap) cout << CW2A(iterMap->first) << " " << CW2A(iterMap->second) << endl; iterMap = mapTest.find(L"學生"); if(iterMap != mapTest.end()) { cout << CW2A(iterMap->first) << " " << CW2A(iterMap->second) << endl; } cout << endl;
輸出:
哈哈 呵呵
學生 老師
職工 領導
學生 老師
三、set
set就是一個集合,和我們學過的集合類似,這個集合預設是按順序排列的,並且所有元素型別一致,並且不存在重複元素,例項程式碼如下:
void setExample() { set<int> setTest; setTest.insert(2); setTest.insert(3); setTest.insert(3); setTest.insert(1); set<int>::iterator iterset = setTest.begin(); for (; iterset != setTest.end(); ++iterset) { cout << *iterset << endl; } cout << *setTest.begin() << endl; cout << endl; }
結果:
1
2
3
1