C++标准库map类型

本文介绍了C++标准库中的关联容器map,包括其定义、元素添加、查找、删除及基本操作函数的使用。map是一个按关键字升序排序的键值对集合,提供高效的关键字查找和访问。文章通过实例详细讲解了map的各个功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

map是一种关联容器,所谓的关联容器是指支持高效的关键字查找和访问。map中的元素为一些关键字-值(key-value)对,关键字起到索引值的作用,且map中的元素是按照关键字升序排序的。还有map是个映射,所以它的关键字和值是一一对应的。接下来就为大家介绍map的用法

1.map的定义

我们可以用如下方法定义或初始化map

//空容器
map<int,string> m1;
//值初始化map
map<string,string> m2 = {{"001","shreck"},
{"002","leo"}
}; 

2.为map添加元素

我们可以用如下方法为map添加元素

map<string,string> m;

//方法一
m.insert(pair<string,string>("001",""shreck));
//方法二
m.insert(map<string,string>::value_type("002",""leo));
//方法三
m[2] = "lewin";

3.map中查找某个元素

我们使用find函数来查找map中的元素,若查找失败则返回尾部迭代器
find函数具体用法实例如下

#include<iostream>
#include<map>

using namespace std;

int main(int argc,char **argv)
{
    map<int,string> m;

    m[0] = "shreck";
    m[1] = "leo";

    //使用find函数查找leo
    auto it = m.find(1);

    if(it == m.end())
    {
        cout<<"未找到该元素"<<endl;
    }
    else
    {
        cout<<"该元素为:"<<it->second<<endl;
    }


    return 0;
}

4.map的删除

map的删除方法有三种
(1)传递给erase一个迭代器
(2)传递给erase一个迭代器对
(3)传递给erase一个key_value
map的删除方法如下实例

#include<iostream>
#include<map>

using namespace std;

//遍历函数
void print(const map<int,string> &m)
{
    for(auto x:m)
    {
        cout<<x.second<<" ";
    }
    cout<<endl;
}

int main(int argc,char **argv)
{
    map<int,string> m;

    m[0] = "shreck";
    m[1] = "leo";
    m[2] = "lewin";
    m[3] = "lyh";
    m[4] = "lz";

    //传一个迭代器
    auto it1 = m.find(2);
    m.erase(it1);
    print(m);

    //传一对迭代器
    auto it2 = m.find(1);
    auto it3 = m.find(4);

    m.erase(it2,it3);
    print(m);

    //传一个key_value
    m.erase(0);
    print(m);

    return 0;
}

5.map的一些基本操作函数

函数作用
begin()返回map的头部迭代器
end()返回指向map末尾的尾部迭代器
clear()删除容器中所有元素
empty()判断map是否为空
erase()删除map中的元素
find()查找一个元素
insert()插入一个元素
size()返回map中的元素个数
max_size()返回map可容纳的最大元素个数
lower_bound()指向第一个关键字不小于K的元素
upper_bound()指向第一个关键字大于k的元素
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值