使用 <multimap> 库创建重复键关联容器
2007-03-15 21:55:39 来源:WEB开发网核心提示: #include <map>#include <string>multimap <string, string> DNS_daemon;用 insert() 成员函数而不是下标操作符来插入元素,insert()有一个 pair 类型的参数,使用 <
#include <map>
#include <string>
multimap <string, string> DNS_daemon;
用 insert() 成员函数而不是下标操作符来插入元素。insert()有一个 pair 类型的参数。在“使用 <map> 库创建关联容器”中我们示范了如何使用 make_pair() 辅助函数来完成此任务。你也可以象下面这样使用它:
DNS_daemon.insert(make_pair("213.108.96.7","cppzone.com"));
在上面的 insert()调用中,串 “213.108.96.7”是键,“cppzone.com”是其关联的值。以后插入的是相同的键,不同的关联值:
DNS_daemon.insert(make_pair("213.108.96.7","cppluspluszone.com"));
因此,DNS_daemon 包含两个用相同键值的元素。注意 multimap::insert() 和 map::insert() 返回的值是不同的。
typedef pair <const Key, T> value_type;
iterator
insert(const value_type&); // #1 multimap
pair <iterator, bool>
insert(const value_type&); // #2 map
multimap::insert()成员函数返回指向新插入元素的迭代指针,也就是 iterator(multimap::insert()总是能执行成功)。但是 map::insert() 返回 pair<iterator, bool>,此处 bool 值表示插入操作是否成功。
查找单个值
与 map 类似,multimap 具备两个版本重载的 find()成员函数:
iterator find(const key_type& k);
const_iterator find(const key_type& k) const;
find(k) 返回指向第一个与键 k 匹配的 pair 的迭代指针,这就是说,当你想要检查是否存在至少一个与该键关联的值时,或者只需第一个匹配时,这个函数最有用。例如:
更多精彩
赞助商链接