- 关联型容器
- map
- multimap
- equal_range 与 lower_bound 与 upper_bound
- set
- Unordered Container 无序关联容器
- unordered_map
- unordered_multimap
关联型容器
map 的特性是,所有元素会根据元素的键值自动被排序,map 的所有元素都是 pair,
同时拥有实值(Value)和键值(Key)。pair 的第一元素被视为键值,第二个元素被视为
实值。map 不允许两个元素拥有相同的键值。
map
// map
#include <iostream>
#include <map>
using namespace std;
int main(){
map<int ,string ,less<int> >mis={
pair<int,string>(1,"apple"),
pair<int,string>(2,"banana"),
pair<int,string>(3,"orange"),
};
mis.insert(pair<int,string>(4,"grape"));
mis.insert(pair<int,string>(4,"xxx"));//重复的key,会舍弃掉
mis.insert(map<int,string>::value_type(5,"pear"));
mis.insert(make_pair<int,string>(6,"pineapple"));
mis[4]="66";//修改某个key的值
map<int,string>::iterator it;
for(it=mis.begin();it!=mis.end();it++){
cout<<it->first<<" "<<it->second<<endl;
}
return 0;
}
multimap
//todo multimap
#include <iostream>
#include <map>
using namespace std;
int main(){
multimap<int ,string ,less<int> >mis={
pair<int,string>(1,"apple"),
pair<int,string>(2,"banana"),
pair<int,string>(3,"orange"),
};
mis.insert(pair<int,string>(4,"grape"));
mis.insert(pair<int,string>(4,"xxx"));
mis.insert(map<int,string>::value_type(5,"pear"));
mis.insert(make_pair<int,string>(6,"pineapple"));
//mis[4]="66";//修改某个key的值 multimap不支持
//插入
mis.insert(mis.find(100),pair<int,string>(100,"100"));
mis.insert(mis.fin