打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C++标准库:std_map作为一个关联数组
 

摘要:本文是C++标准库导引系统文档的一部分。在本文我想说说std::map的使用,std::map作为一个容器存在一个典型应用就是作为关联数组来作用。在诸如Java等等语言中,关联数组广泛存在。本文只是std::map使用的简单示例,更详细的内容可能需要等待下一个系列文章。

std::map是一个容器,在它的概念框架中存在两个词:键和值,std::map把一个键与一个值相对,它相当于一个字典,把一个索引和一人内容对应起来。一般情况下,std::map用一个平衡二叉树来实现的,所以它的大部分操作都可以log(n)的时间里完成。下面让我们看看其中的简单使用:

#include<map>
//定义一个整数到整数的映射
//其中前一个键,后一个是值
std::map<int, int> map;

//要创建一个简单的映射,可以这样
//下面两句在map创建两个结点,分别完成预期的映射
map[0]=12;
map[99]=13;

std::map是以结点的形式存储其中的元素的,我们可以手工制造一个结点然后放到容器中或者从容器删除相关条件的结点,这些都由“键”来驱动的,也就是说一个操作你往往要告诉std::map是针对哪个键进行的。

下面给出一些典型的代码:

#include<map>
#include<string>
#include<utility>
#include<iostream>

std::map<std::string, int> string_int;
string_int["one"]=12;
string_int["name"]=88;
//插入元素的另一种方法
string_int.insert(std::make_pair(std::string("ok"), 0));

//搜索指定的键
std::map<std::string, int>::const_iterator b=string_int.find("ok");
//如果找到
if(b!=string_int.end())
{
std::cout << "ok: " << *b << std::endl;
}

//删除指定元素,根据迭代器
string_int.erase(b);
//删除指定元素,根据键,返回删除的个数
//对于std::map而言只能是0或1,但对于std::mutimap而言就不一定了
size_t n=string_int.erase("one");

只是一个导引,祝大家学习之旅开心愉快!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C#与STL的容器对应说明(转摘)
标准模板类(STL)(二),具体容器简介
第 11 章
C++中map容器的说明和使用技巧
STL 使用 erase 删除元素时 iterator 失效
STL容器分类
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服