关联容器 set map

有序关联容器:基于一个序标准(默认是<)进行查找。这类容器用平衡二叉树实现,通常是红黑树。

无需关联容器:基于一个哈希函数进行查找。这类容器用哈希表实现,采用溢出链表策略。

两类容器都支持:

map      {键,值}

set     不带值的map,或者说关键字就是值。

初始化:

map<string,pair<Coordinate,Coordinate>> locations
    {
        {"Copenhagen",{"55:40N","12:34E"}},
        {"Rome",{"41:54N","12:30E"}}
    };

基本操作:

v = c[k]  
v = c.at(k)

p = c.find(k)
p = c.lower_bound(k)
p = c.upper_bound(k)
pair(p1,p2) == c.equal_range(k)

map<string,string> dictionary;
dictionary["sea"] = "large body of water";  //insert

atuo q = dictionary.find("seal");

if(q==dictionary.end()){
    cout << "entry not found";
    dictionary.emplace("seal","eats fish");
}
else
    cout q->second;

set

以结构体为参数

struct Record{
    string label;
    int value;
};
bool operator < (const Record& a, const Record& b){
    return a.label < b.label;
}

set<Record> mr {{"duck",10},{"pork",12}};


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值