c++入门笔记-map/multimap容器

本文介绍了C++中的map和multimap容器,包括它们的基本概念、构造与赋值、大小和交换、插入与删除、查找和统计以及排序。map作为关联容器,通过键值自动排序并提供高效查找,但空间占用较大。multimap与map类似,但允许重复键值。示例展示了如何操作map和multimap,如插入、删除元素,查找键值以及改变排序规则。
摘要由CSDN通过智能技术生成

基本概念

        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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值