set
set 是关联容器, 元素互不相同(multiset支持重复对象), 并且有序存放. 当增减一个元素,容器都会重新排序, 所以查询速度较快(不如vector快).
//构造函数
std::set set_1;
int iNums[] = {10,20,30,40,50};
set set_2(iNums, iNums+5);
set set_3(set_2);
set set_4(set_2.begin(), set_2.end());
//insert 方法
set::iterator it;
pair::iterator,bool> ret;
ret = set_2.insert(20); //重复, 无法插入
if (false == ret.second)
it = ret.first; //不成功时, 指向元素 20.
set_2.insert(25);
//批量插入
int iTmp[]={5, 15, 25}; //25已经存在, 不能插入.
set_2.insert(iTmp, iTmp+3); //此时内容为 5,10,15,20,25,30,40,50
其他API
clear(); //删除所有元素
empty(); //判断是否为空
size(); //set 的元素格式
count(); //查找某个键出现的次数, set中只会返回0/1, 因为元素不能重复.
erase(iterator); 删除 定位器对应键
erase(it_1st, it_2nd) 删除定位器之间的值
erase(key_value); //根据值删除元素
find(); //返回对应键的定位器.
map:
数据为键key / 值val 对. 并且存储为 键key 排序. 键key要唯一.(multiMap不需要唯一).
操作和 set 基本相同.
map ii_map;
map::const_iterator it_map;
for (int i=0; i<10; i++)
ii_map.insert(pair(i,i)); //插值
ii_map[1] = 11;
ii_map[2]; //相当于置空
//此时结果为 <0,0><1,11><2,0><3,3><4,4>
阅读(2182) | 评论(0) | 转发(0) |