c++ set
1.?set的初始化
set可以這樣初始化
set<int> iset{ 1,2,3 };
set<int> iset2 = { 1,2,3 };
在初始化set的時候,若出現重復的元素
set<int> iset3{ 1,2,3,3,3 };
set<int> iset4 = { 1,2,3,3,3 };
則多余的重復元素在儲存時被刪去,若打印出來,set中只有1,2,3三個元素。
2. 關于set的迭代器
由于set并沒有定義+和-操作,所以沒有辦法用set.iterator+n的方式指定迭代器,比如這樣
set<int> an_set1{ 2,3,4,5,6 };
vector<int> an_vector2(an_set1.begin()+1, an_set1.end());
這樣的操作是錯誤的。不過set定義了迭代器的自加++和自減++,所以還是可以用迭代器遍歷set元素。
3. 順序儲存
加入set中的元素會被排序,默認是升序,當然也可以通過自定義的比較函數來改變排序規則。
set<int> iset{ 3,2,1,2,1,3,4,0 };
for (auto num:iset)
{cout << num << " ";
}
結果:
總結
- 上一篇: c++ std::priority_qu
- 下一篇: 编译OpenCV 2+ with CUD