0%

C/C++ STL set/map

set和map由红黑树RBtree实现。

初始化

1
2
3
4
set<int>ss;
ss.clear();
map<int, int>mm;
mm.clear();

插入

1
2
ss.insert(k);
map[k]++;

删除

1
2
3
ss.erase(num)
ss.erase(num_begin, num_end)
//?

遍历

1
2
3
4
5
6
7
8
9
set<int>::iterator it;
for(int it = ss.begin(); it != ss.end(); it++){
int a = *it;
}
map<int, int>::iterator it;
for(int it = mm.begin(); it != mm.end(); it++){
int a = it ->first;
int b = it ->second;
}

查找

1
2
3
4
5
6
// map
if(mm[num] != 0){}
if(mm.find(num));
// set 查到返回迭代器,查不到返回std::end
if(ss.find(num) != ss.end()){}
if(ss.count(num)){}
-------------这么快就看完啦^ω^谢谢阅读哟-------------