基本概念
map中所有的元素都是对组pair
pair中的第一个元素为key(键值) 起到索引作用 第二个元素为value(实值)
所有元素会根据元素的键值自动排序
本质 :map/multimap属于关联式容器 底层结构是二叉树类型实现

优点:非常的高效能 可以根据key值快速的找到value值 具有有序性,这是map结构最大的优点,其元素的有序性在很多应用中都会简化很多的操作
缺点:空间占用率大 因为底层的数据结构是红黑树实现的 每一个节点都需要额外保存父节点、孩子节点和红/黑性质,使得每一个节点都占用大量的空间
map和multimap区别:
map不允许容器中有重复key值元素
multimap允许容器中有重复key值
map构造和赋值
map<T1, T2> mp; //map默认构造函数
map(const map &mp); //拷贝构造函数
map& operator=(const map &mp); //重载等号操作符
#include <iostream>
using namespace std;
#include <map>
void printMap(map<int,int> &m){
for(map<int,int>::iterator it = m.begin();it != m.end();it++){
cout << "key = " << (*it).first << " value = " << (*it).second <<endl;
}
cout << endl;
}
void test01(){
//创建map容器
map<int,int>m;
//插入对组
m.insert(pair<int,int>(1,10)); //1是索引作用 10是实值作用
m.insert(pair<int,int>(2,20));
m.insert(pair<int,int>(3,30));
m.insert(pair<int,int>(4,40));
printMap(m);
//拷贝构造
map<int,int>m2(m);
printMap(m2);
//等号赋值
map<int,int>m3;
m3 = m2;
printMap(m3);
}
int main() {
test01();
return 0;
}
输出结果:
key = 1 value = 10
key = 2 value = 20
key = 3 value = 30
key = 4 value = 40
k
本文介绍了C++中的map和multimap容器,包括它们的基本概念、构造与赋值、大小和交换、插入与删除、查找和统计以及排序。map作为关联容器,通过键值自动排序并提供高效查找,但空间占用较大。multimap与map类似,但允许重复键值。示例展示了如何操作map和multimap,如插入、删除元素,查找键值以及改变排序规则。
最低0.47元/天 解锁文章

603

被折叠的 条评论
为什么被折叠?



