STL系列:关联容器的操作

在C++ 中定义了几种类型用来表示容器关键字和值的类型。

key_type   mapped_type   value_type

对于set,由于保存的值就是关键字,所以,key_type和value_type是一样的。set的迭代器是const的!

对于set,find调用返回的是一个迭代器,如果我们所给定的关键字在set中的时候,迭代器就指向该关键字,否则,find返回尾后迭代器。


在一个map中,元素是键值对,即每个元素就是一个pair对象。值得注意的是,key_type是关键字类型,value_type是pair类型,

mapped_type才是关键字关联的值的类型!

map<int,string>::key_type v    //int
map<int,string>::value_type v1   //pair<int,string>
map<int,string>::mapped_type v2   //string

set<string>::key_type v3    //string
set<string>::value_type v4   //string

关联容器的查找

对于有序关联容器 map set

map:  下标或者find

map<string,int>mapp;
mapp["one"] = 1;
cout<<mapp["one"]<<endl;

set:

set和map一样,find调用返回的是一个迭代器,如果我们所给定的关键字在set/map中的时候,迭代器就指向该关键字,否则,find返回尾后迭代器。

if(mapp.find("one") == mapp.end())
     cout<<"one is not found !"<<endl;

multimap或者multiset

调用find 返回的是该关键字指向的第一个元素(一个关键字可能对应于很多的元素值),可以遍历这些元素值,全部打印输出。

multimap<string,string>authors;
/*导入数据*/
string search_item("yanghang");
auto entries = authors.count(search_item);
auto iter = authors.find(search_item);
while(entries)
{
    cout<<iter->second<<endl;
    ++iter;
    --entries;
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值