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 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      ii_map.insert(pair(i,i)); //插值
  ii_map[1] = 11;  
  ii_map[2];  //相当于置空
  //此时结果为










09-04 23:01
查看更多