C++ 标准模板库(STL)——map的使用

目录

一、描述

二、定义和初始化

三、插入元素

1、insert方式插入、[ ] 方式插入、 emplace方式插入

2、其他方式插入元素

四、查找元素

1、使用find函数

2、使用count函数

五、删除元素

六、修改元素

七、遍历元素

八、其他用法

1、进阶用法,自定义比较函数

2、使用equal_range和count

九、总结


一、描述

C++ STL (Standard Template Library) 中的 map 是一个关联容器,用于存储键值对(key-value pairs),并且这些键值对是按照键的排序顺序存储的。map 内部通常实现为红黑树(一种自平衡二叉查找树),这使得插入、删除和查找操作的时间复杂度都为 O(log n)。

二、定义和初始化

使用std::map 来访问,如果头部信息包含 using namespace std;则不需要std::,可以直接使用map<xx, yy>,  xx 和 yy 是变量,可以是同一类型,也可以不是同一类型;

#include <map>
#include <string>

// 定义一个空的map,键为int类型,值为string类型
std::map<int, std::string> myMap;

// 使用初始化列表来定义并初始化map
std::map<int, std::string> myMap = {
  
  {1, "one"}, {2, "two"}, {3, "three"}};

三、插入元素

1、insert方式插入、[ ] 方式插入、 emplace方式插入
// 如果键不存在,则插入新元素;如果存在,则更新对应的值
myMap[4] = "four"; 

// 插入新的键值对
myMap.insert({5, "five"}); 

// 直接在map中构造新的元素
myMap.emplace(6, "six"); 
2、其他方式插入元素
#include <iostream>
#include <map>

int main()
{
    std::map<int, std::string> myMap;

    // 插入单个元素
    myMap.insert(std::make_pair(1, "one"));

    // 插入时使用结构化绑定(C++17 及以上)
    auto [iterator, success] = myMap.insert({2, "two"});
    if (success)
    {
        std::cout << "Insertion successful: " << iterator->first << " => " << iterator->second << std::endl;
    }
    else
    {
        std::cout << "Insertion fai
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值