mobile wallpaper 1
mobile wallpaper 2
mobile wallpaper 3
mobile wallpaper 4
296 words
1 minute
map容器 - CPP STL
2026-10-17

map基本概念#

简介#

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

本质#

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

优点#

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

map/multimap区别:#

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

map构造和赋值#

功能描述#

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

函数原型#

构造#
map<T1,T2>mp; //默认构造
map(const map &mp);//拷贝构造
赋值#
map& operator=(const map &mp); //重载=

map大小和交换#

功能描述#

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

函数原型#

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

map插入和删除#

功能描述#

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

函数原型#

insert(elem); //在容器中插入元素,详见下方
insert(pair<type,type>(value1,value2));
insert({v1,v2});
insert(make_pair(v1,v2));
insert(map<type,type>::value_type(value1,v2));
operator[]; //重载[],不建议拿来插数,而是用于访问
clear(); //清除所有元素
erase(pos);//清除pos迭代器所指的元素,返回下一个元素迭代器
erase(beg,end);//删除区间[beg,end)的所有元素,返回下一个元素的迭代器
erase(key); //删除容器中值为key的元素

map查找和统计#

功能描述#

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

函数原型#

find(key); //查找key是否存在,若存在,返回该元素迭代器;不存在,返回map.end();
count(key); //统计key的元素个数(对map而言,只会是0或1)

map容器排序#

学习目标#

  • map默认排序规则按key排,从小到大,掌握如何改变规则

主要技术点#

  • 利用仿函数,改变排序规则
class MyCompare
{
public:
bool operator()(int v1,int v2) const
{
return v1 > v2;
}
}
map<int,string,MyCompare> m2;

Video#

Share

If this article helped you, please share it with others!

map容器 - CPP STL
https://www.bilibili.com/video/BV1et411b73Z/?p=231
Author
Memki
Published at
2026-10-17
License
CC BY-NC-SA 4.0

Some information may be outdated

Table of Contents