标签:
关联式容器
set键值和实际数值是一个值,不能包含重复元素,元素自动按从小到大排序,multiset可以包含重复元素的set
map是排序的结构体,键值不能重复,multimap允许有重复的键值
|
set(multiset) |
map(multimap) |
头文件 |
<set> |
<map> |
定义 |
#include<functional> set<int,less<int>>s1 从小到大排序 set<int,greater<int>>s1,从大到小排序 |
#include<functional> map<int,float,less<int>>mp1; map<float,int, greater<float>>mp2; 初始化 map<float,int>mp3(mp2); map<float,int>mp3(mp2.begin(),mp.end()); |
大小 |
s1.size() s1.max_size(); |
mp.size() mp.max_size() |
计数 |
s1.count(10);元素10的个数 |
mp.count(10);10为键值 |
查找 |
set<int>::iterator it; it= s1.find(10); 返回迭代器
|
map<int,double>::iterator it; it= mp.find(10);
|
上界,下界函数 |
it=s1.low_bound(10) 返回大于等于10的第一个元素的指针
it=s1.up_bound(10) 返回大于10的第一个元素的指针
pair<set<int>::iterator,<set<int>::iterator> p; p=s1.equal_range(10); *p.first 是大于等于10第一元素 *p.second 是大于10第一个元素 |
也有lower_bound和upper_bound函数 |
赋值 |
s1=s2; s1.swap(s2) |
mp1=mp3; mp1.swap(mp3) |
迭代器 |
s1.begin(),s1.end(),s1,rbegin(),s1.rend() |
mp.begin(),mp.end(),mp.rbegin(),mp.rend() |
插入 |
1) pair<iterator,bool> p1; p1=s1.inset(17); p1.second 是否成功插入 p1.first 插入位置的迭代器 p1.first-s1.begin()+1 2)iterator s1.intser(17) 返回插入的位置 3)s1.inser(s2.begin(),s2.end()) |
typedefpair<int,double>mypair; mp.insert(mypair(1,10)); mp.insert( mp.begin(),mypair(4,4.4)); |
移除 |
s1.erase(s1.begin()); s1.erase(s1.begin(),s1.end()); |
mp.erase(mp.begin()); mp.erase(mp.begin(),mp.end()); |
标签:
原文地址:http://www.cnblogs.com/ranranblog/p/5632492.html