Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9152010
  • 博文数量: 1727
  • 博客积分: 12961
  • 博客等级: 上将
  • 技术积分: 19860
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-09 11:25
个人简介

偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.

文章分类

全部博文(1727)

文章存档

2024年(3)

2023年(26)

2022年(112)

2021年(217)

2020年(157)

2019年(192)

2018年(81)

2017年(78)

2016年(70)

2015年(52)

2014年(40)

2013年(51)

2012年(85)

2011年(45)

2010年(231)

2009年(287)

分类: Windows平台

2019-06-28 16:36:50

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>










阅读(2071) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~