C++:STL------map

本文详细介绍了C++ STL中的map容器,包括map的基本概念、声明和初始化、迭代器的使用、[ ]操作符的功能以及相关方法。map作为键值对的映射,基于红黑树实现,时间复杂度通常为O(logn)。同时,文章提醒在使用[ ]操作符时应注意检查key的存在性,避免创建无用的键值对。
摘要由CSDN通过智能技术生成

C++:STL------map

1.about

map容器是一个键值对 key-value 的映射。其内部实现是一棵以 key 为关键码的红黑树。map的 key 和 value 可以是任意类型,其中 key 必须定义“小于号”运算符。

在很多时候, map容器被当作Hash表使用,建立从复杂信息 key (如字符串)到简单信息 value (如一定范围内的整数)的映射。

因为map基于平衡树实现,所以它的大部分操作的时间复杂度都在 O(logn) 级别,略慢于使用Hash函数实现的传统Hash表。从C++11开始,STL中新增了unordered_map等基于Hash函数实现的传统Hash表。

2.声明和初始化

#include <map>							//头文件
map<key_type, value_type> name;

map<long long, bool> vis;
map<string, int> hash;
map< pair<int, int>, vector<int> > test;

// 初始化构造
map<int, string> map_test1;		// 默认构造
map<int, string> map_test2(map_test1.begin(), map_test1.end());	// 范围构造

map<int, string> map_test3 = map_test2;			// 赋值构造 
map<int, string> map_test4(map_test2);			// 
  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值