set
集合,不会出现重复的内容,一般用来作查重和去重操作。
定义
set<类型> 容器名
set s;
操作
函数 | 操作 | 用法 |
---|---|---|
insert() | 插入元素 | s.insert(1) |
count() | 判断容器中是否存在某个元素 | s.count(1) |
size() | 返回容器的元素个数 | s.size() |
clear() | 清空集合 | s.clear() |
empty() | 判断集合是否为空 | s.empty() |
begin() | 返回第一个节点的迭代器 | s.begin() |
end() | 返回最后一个节点加1的迭代器 | s.end() |
rbegin() | 反向迭代器 | |
rend() | 反向迭代器 | |
========= | ============ | ======== |
find() | 查找某个指定元素的迭代器 | s.find(1) |
erase() | 删除某个元素 | s.erase(iterator); |
erase(first,second) | 删除定位器first和second之间的元素 | s.erase(s.begin(),s.end()) |
erase(key_value) | 删除键值key_value的值 | s.erase(1) |
lower_bound() | 二分查找第一个不小于某个值的元素的迭代器 | s.lower_bound(1) |
swap() | 交换两个集合的变量 | swap(s1,s2) |
map
map,映射,键是唯一的
定义
map<typename1,typename2> mp;
操作
函数 | 操作 | 用法 |
---|---|---|
insert() | 插入元素 | mp.insert(pair<typename1,typename2>(参数1,参数2)) |
mp.insert(map<typename1,typename2>::value_type(参数1,参数2)) | ||
覆盖之前该关键词对应的值 | mp[0]=值 | |
find() | 查找某个指定元素,返回迭代器 | mp.find('a) |
erase() | 删除单个元素 | mp.erase(iterator) |
erase(first,second) | 删除一个区间内的所有元素 | mp.erase(first,second) |
size() | 获取map中映射的数量 | mp.size() |
clear() | 清空map中的所有元素 | mp.clear() |
访问
1、通过下标访问
mp['a']=20;
2、通过迭代器访问
for(map<char, int>::iterator it = mp.begin(); it != mp.end(); it++){
cout << it->first;
cout << it->second;
cout << endl;
}