map、set

vector/list/deque        序列式容器:单纯存储数据
map/set                关联式容器:不仅存储数据,还可以查找数据,存储的数据和数据之间关联性很强

set        //key模型搜索    排序+去重


lower_bound()    //>= x
upper_bound()    //>    x



map:
用pair来作为key和val之间的联系

有哪些书写方法呢?
map<string,string> dict;
map<string,string>  kv1("sort","排序");

dict.insert(kv1);
dict.insert(pair<string,string>("left","左边"));
dict.insert(make_pair("right","右边"));

pair<string,string> kv2 = {"string","字符串"};
dict.insert({"string","字符串"});

map<string,string> dict2 = {{"left","左边"},{"right","右边"},{"string","字符串"}};

iterator key 不能修改  value可以修改
const_iterator  key和value都不能修改

重点:
operator[]

insert:
key  存在  插入失败,返回  pair<存在的key所在节点的迭代器,false>
key  不存在  插入成功,返回  pair<新插入key所在节点的迭代器,true>

map<string,string> dict;

//插入
dict["right"];

//插入+修改
dict["left"] = "左边";

//查找
cout << dict["string"] << endl;

//修改
dict["right"] = "右边";


map<string,int>  mapcount;
for(auto&  e:mapcount)
{
    mapcount[e]++;
}


multimap 和 multiset  都允许键值冗余
但是这两个都没有[]

sort是快排,快排不稳定
我们可以使用stable_sort,底层原理是归并排序

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值