首页 > 其他分享 >map/ multimap容器

map/ multimap容器

时间:2024-03-29 14:55:37浏览次数:11  
标签:map multimap 容器 元素 --- key

map/ multimap容器

1.1 map基本概念

简介:

  • map中所有元素都是pair
  • pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)
  • 所有元素都会根据元素的键值自动排序

本质:

  • map/multimap属于关联式容器,底层结构是用二叉树实现。

优点:

  • 可以根据key值快速找到value值

map和multimap区别:

  • map不允许容器中有重复key值元素
  • multimap允许容器中有重复key值元素

1.2 map构造和赋值

功能描述:

  • 对map容器进行构造和赋值操作

函数原型:
构造:

  • map<T1, T2> mp; //map默认构造函数:
  • map(const map &mp); //拷贝构造函数

赋值:

  • map& operator=(const map &mp); //重载等号操作符

总结:
map中所有元素都是成对出现,插入数据时候要使用对组

1.3 map大小和交换

功能描述:

  • 统计map容器大小以及交换map容器

函数原型:

  • size(); //返回容器中元素的数目/大小
  • empty(); //判断容器是否为空
  • swap(st); //交换两个集合容器

总结:

  • 统计大小 --- size
  • 判断是否为空 --- empty
  • 交换容器 --- swap

1.4 map插入和删除

功能描述:

  • map容器进行插入数据和删除数据

函数原型:

  • insert(elem); //在容器中插入元素。
  • clear(); //清除所有元素
  • erase(pos); //删除pos迭代器所指的元素,返回下一个元素的迭代器。
  • erase(beg, end); //删除区间 [beg,end) 的所有元素(区间是前闭后开) ,返回下一个元素的迭代器。
  • erase(key); //删除容器中值为key的元素。

总结:

  • map插入方式很多,记住其一即可
  • 插入 --- insert
  • 删除 --- erase
  • 清空 --- clear

1.5 map查找和统计

功能描述:

  • 对map容器进行查找数据以及统计数据

函数原型:

  • find(key); //查找key是否存在,若存在,返回该键的元素的迭代器(位置);若不存在,返回set.end();
  • count(key); //统计key的元素个数

总结:

  • 查找 --- find (返回的是迭代器)
  • 统计 --- count (对于map,结果为0或者1,因为map不允许有相同的key值存在,而multimap允许)

标签:map,multimap,容器,元素,---,key
From: https://www.cnblogs.com/H43724334/p/18103856

相关文章

  • Stack容器
    stack容器1.1stack基本概念概念:stack是一种先进后出(FirstInLastOut,FILO)的数据结构,它只有一个出口栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为栈中进入数据称为---入栈push栈中弹出数据称为---出栈pop1.2stack常用接口功能描述:栈容器常......
  • Queue 容器
    queue容器1.1queue基本概念概念:Queue是一种先进先出(FirstInFirstOut,FIFO)的数据结构,它有两个出口队列容器允许从一端新增元素,从另一端移除元素队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为队列中进数据称为---入队push队列中出数据称为---......
  • Vector容器
    vector容器最常用的容器之一1.1vector基本概念功能:vector数据结构和数组非常相似,也称为单端数组vector与普通数组区别:不同之处在于数组是静态空间,而vector可以动态扩展动态扩展:并不是在原空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝新空间,释放原空间......
  • Deque容器
    deque容器1.1deque容器基本概念功能:双端数组,可以对头端进行插入删除操作deque与vector区别:vector对于头部的插入删除效率低,数据量越大,效率越低deque相对而言,对头部的插入删除速度会比vector快vector访问元素时的速度会比deque快,这和两者内部实现有关deque内部工作......
  • String容器
    String容器1.1string基本概念本质:string是C++风格的字符串,而string本质上是一个类string和char*区别:char*是一个指针string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。特点:string类内部封装了很多成员方法例如:查找find,拷贝copy,删除delete......
  • resultMap映射null问题
    resultMap和resultTypeResultMap会将所有的自定义映射返回,实体类里不包含的字段也映射出来,且为nullresultMap存在的问题,你使用自定义映射集映射结果后,mapper返回的结果类型就成了自定义映射集的type当需要的结果只需要几个字段时,而返回类型建议使用ResultType,因为ResultMap映射......
  • Map集合的几种常见遍历方式
    keySet()for(Stringkey:map.keySet()){System.out.println(key);}values()for(Stringvalue:map.values()){System.out.println(value);}entrySet()for(Map.Entry<String,String>entry:map.entrySet()){Stringk=entry.getKey......
  • Redis Map数据结构中相同key不同的字段会分散多节点存储吗?
    目录结论说明 结论   无论是单实例Redis还是Redis集群,一个Map数据类型的key对应的所有字段和值都存储在同一台机器上。在Redis集群中,这是通过哈希槽机制来保证的,确保了对同一个key的操作不需要跨节点通信,从而提高了操作的效率。说明    Redis的Map数据类......
  • string容器(一)
    一、string基本概念本质:string是C++风格的字符串,而string本质上是一个类string和char*区别:1.char*是一个指针2.string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。特点:1.string类内部封装了很多成员方法例如:查找find,拷贝copy,删除delete替换repl......
  • vector容器(二)
    一、vector数据存取函数原型:at(intidx);//返回索引idx所指的数据operator[];//返回索引idx所指的数据front();//返回容器中第一个数据元素back();//返回容器中最后一个数据元素代码示例:#include<iostream>usingnamespacestd;#include<vector>//vector容器数......