关联容器(二)
来源:互联网 发布:c语言程序小游戏 编辑:程序博客网 时间:2024/06/06 16:35
关联容器操作
1、关联容器迭代器
当解引用一个关联容器迭代器时,我们会得到一个类型为容器value_type的值的引用。对map而言,value_type是一个pair类型,其first成员保存const的关键字,second成员保存值。
//获得指向word_count中一个元素的迭代器
automap_it = word_count.begin( );
//*map_it是指向一个pair<const string , size_t>对象的引用
cout<< map_it->first;
cout<< map_it->second;//错误,关键字是const的
++map_it->second;//正确,我们可以通过迭代器改变元素
注:一个map的value_type是一个pair,我们可以改变pair的值,但是不能改变关键字成员的值。
set的迭代器是const的:
虽然set同时定义了iterator和const_iterator类型,但两种类型都只允许只读访问set中的元素。与不能改变一个map元素的关键字一样,set中的关键字也是const的。可以用一个set迭代器来读取元素,但是不能修改。
set<int>iset = {1,2,3,4,54,6,7,54};
set<int>::iteratorset_it = iset.begin( );
if(set_it!=iset.end))
{
*set_it = 42;
cout<<*set_it<<endl;
}
2、添加元素
关联容器的insert成员向容器中添加一个元素或一个元素的范围。由于map和set保护不重复的关键字,因此插入一个已经存在的元素对容器没有任何影响。
vector<int> ivec={2,4,6,8,2,4,6,8};
set<int>set2;
set2.insert(ivec.cbegin(), ivec.cend( ));//set2只有四个元素
向map中添加元素:
//向word_count插入word的四种方法
word_count.insert({word,1});
word_count.insert({word,1});
word_count.insert(pair<string, size_t>(word, 1));
word_count.insert(map<string,size_t>::value_type(word, 1));
3、删除元素
关联容器定义了三个版本的erase。
我们可以通过传递给erase一个迭代器来删除一个元素,或者一个迭代器对来删除一个元素范围。
4、访问元素
关联容器提供多种查找一个指定元素的方法。如果我们只关系元素是否在容器中,可能find是最佳选择。对于不重复关键字的容器,可能使用find和count没什么区别。但对于重复关键字的容器,count还可以统计出关键字相同的元素有多少个。如果不需要计算,最好用find。
set<int>iset={0,1,2,3,4,5,6,7,8,9};
iset.find(1);//返回一个迭代器,指向key==1的元素
iset.find(11);//返回一个迭代器,其值等于iset.end( )
iset.count(1);//返回1
iset.count(11);//返回0
- 关联容器(二)
- 关联容器(二):mutiset
- STL容器(二) 关联容器
- C++容器(二):关联容器简介
- Part3:关联容器(二)&Part4:迭代器
- (二十七)Qt容器之关联容器
- 文本查询程序(关联容器使用)二
- C++容器(顺序容器、关联容器)
- 关联容器(一)
- C++之容器(关联容器)
- 笔记4 (关联容器)
- C++ Primer(关联容器)
- 关联容器(一):set
- 关联容器(三):map
- 关联容器(四):multimap
- 关联容器(五):unordered_map
- 关联容器(六):unordered_set
- 关联容器(七):unordered_multiset
- 图的最小生成树:Prim算法实现
- 1028.继续畅通工程
- 奈何
- 如何管理physical standby 上的temporary tablespace
- Delphi 7 中使用Indy创建独立的 Web Services/SOAP 服务器(四)
- 关联容器(二)
- jaxb解析xml忽略命名空间
- Android程序如何实现从网络中获取一张图片
- [Unity3D]Unity3D游戏开发之继续探索NGUI
- libgdx demo apk 分享
- int_to_string
- CV领域的实验室及研究组
- android:json解析的两个工具:Gson和Jackson的使用小例子
- NYOJ891-找点