map 和 multimap (映射和多重映射)

Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。map 内部自建一颗红黑树(一种非严格意义上的平衡二叉树)。

红黑树

基本用法

1. 定义迭代器 map

构造函数
+ map<string , int >mapstring;
+ map<int ,string >mapint;
+ map<sring, char>mapstring;
+ map<char ,string>mapchar;
+ map<char ,int>mapchar;
+ map<int ,char >mapint;

2. 插入数据

3. 查找指定键对应的节点

4. 删除相应的节点
  • iterator erase(iterator it); //通过一个条目对象删除
  • iterator erase(iterator first, iterator last); //删除一个范围
  • size_type erase(const Key& key); //通过关键字删除
  • clear() // 清空

5. 其他使用
  1. swap()

    交换两个 map 容器的内容

  2. size()

    计算容器大小

  3. find()

    查找制定键第一次出现的位置

  4. 相邻位置

部分用法示例代码

multimap 用法

  • multimap 特性以及用法与 map 相同
  • multimap 允许重复键值的元素
  • 键值 key 与元素 value 为多对多映射关系
  • 没有定义 [] 操作运算
  • 使用 multimap 必须使用宏语句 #include <map>
Hello world!
文章已创建 197

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部