参考文档:(96条消息) C++中set使用详细说明_想去的远方的博客-CSDN博客_c++ set
1.set作为关联容器,和顺序容器的区别在于
①set内部不会存在重复元素
②set内部的元素会自动排序,顺序输出从小到大
之前犯错的地方在于set的访问方式,顺序容器例如vector,array等顺序容器,可以利用下标访问
,例如:
std::vector<int> vec;
vec[10] = 0 ;
而对于set,只能使用迭代器访问,例如
std::set<int> set_1 ;
set<int>::iterator it;
for(it = set_1.begin() ; it != set_1.end() ; it++){
std::cout<< *it <<std::endl;
//*it来获取具体的值
}
并且除开 vector 和 string 之外的 STL 容器都不支持 *(it+i) 的访问方式
set的功能:
insert:
简单的插入操作
find:
find(value),返回value所在的迭代器
erase:
①erase(it) || erase(value):it是迭代器,value是要移除的值
②erase (begin, end): set.erase(set.find(value1), set.find(value2)):begin和end是要删除的首位迭代器
unordered_set:
无序性,剩余和set相同
multiset:
只有排序,但是可以允许有多个重复元素,可以理解一种队列