C++容器---关联式容器<map>&<multimap>
来源:互联网 发布:怎么举报一个软件 编辑:程序博客网 时间:2024/04/29 19:53
由于multimap和map相差不大,所以基本以map做练习;
集合(map)是一种包含已排序(升序)对象的关联容器。map/multimap会根据待定的排序准则,自动将元素排序。两者不同在于前者不允许元素重复,而后者允许。集合元素的第一个参数是key,第二个元素当做value,元素的顺序与key有关,与value无关;
模板原型:
//Key为元素(键值)类型
template
<
class
Key, class T,
class
Compare=less<Key>,
class
Alloc=allocator<pair<const Key,T>>> class map
key:元素的key键;
T:元素的value;
comapre:实现内部排序的仿函数;
allocator:内存配置器,负责内存的分配和销毁;
构造函数:
map <key,Elem> c; //产生一个空的map
map <key,Elem> c(op); //以op为排序准则,产生一个空的map
map <key,Elem> c(begin,end);//以区间(begin,end)内的元素产生一个新的map
map <key,Elem> c(begin,end,op);//以区间(begin,end)内的元素产生一个新的map,元素排序准则为op
map <key,Elem> c1(c) //产生某个map的对象副本
op:排序准则:
1、map<float,string,greater<float> > m1;
2、map<float,string>::allocator_type ma;
ma=m1.get_allocator();
map <float,string> m2(less<float>(),ma);
输出:
map<float,string,greater<int> >::iterator it;
for循环:
Custompair p1 = (pair<float,string>)(*it);
p1.first();p1.second();
格式化输出:fixted、cout.precision(3)等
相关函数:
begin() 返回指向map头部的迭代器
end() 返回指向map末尾的迭代器
rbegin() 返回一个指向map尾部的逆向迭代器
rend() 返回一个指向map头部的逆向迭代器
insert() 插入元素
clear() 删除所有元素
erase() 删除一个元素
count() 返回指定元素出现的次数
find() 查找一个元素
upper_bound() 返回键值>给定元素的第一个位置
lower_bound() 返回键值>=给定元素的第一个位置
empty() 如果map为空则返回true
equal_range() 返回特殊条目的迭代器对
get_allocator() 返回map的配置器,指明对象的初始存储地址
max_size() 返回可以容纳的最大元素个数
size() 返回map中元素的个数
swap() 交换两个map
key_comp() 返回比较元素key的函数
value_comp() 返回比较元素value的函数
--------------------------------
【pair】用法:
-------------------------------
代码练习:
- 关联式容器map/multimap
- STL容器-关联式容器map/multimap
- C++容器---关联式容器<map>&<multimap>
- C++:关联容器(set,multiset,map,multimap)
- 三 关联式容器(二)map和multimap
- 5 关联式容器-set map multiset multimap
- 【深度探索STL】关联式容器map和multimap
- STL之map/multimap关联式容器学习
- Chapter 5:关联式容器之 map 和 multimap
- 关联容器(map、set、multimap、multiset)
- 关联容器 map/set/multimap/multiset
- 关联容器(set & multiset & Map& multimap)
- C++MAP关联容器
- C++map关联容器
- 关联容器之multimap
- 关联容器 multimap
- 关联容器-multimap
- STL容器:map,multimap
- Spring boot--支付宝APP支付安卓老版接口实现(含代码)
- STM32调试相关问题
- MAT内存管理使用
- 刚开通微博
- VR开发——Unity动画系统(V客it学院技术分享)
- C++容器---关联式容器<map>&<multimap>
- 统计机器翻译词对齐模型IBM-model1
- 【LeetCode7】Reverse Integer
- Firebug 和我们say goodbye了你听说了吗?
- 求三数的和
- 电热板使用要点
- OpenStack公共组件oslo之一——oslo.config
- Java开发规范整理
- 学习笔记:java+web开发环境配置