【C++标准模板库STL】map, unordered_map, set, unordered_set简介与常用函数

文章目录

  • map是STL中的标准容器,以键值对的形式存储,即为哈希表,并且是有序的
  • unordered_map也是表示哈希表的容器,但是没有顺序,unordered_map查询单个key的时候效率比map高,但是要查询某一范围内的key值时比map效率低。
  • set集合中只有key,没有value,或者说二者相等。在set中每个元素的值都唯一,而且系统能根据元素的值自动进行排序。set中元素的值只能插入和删除,不能被修改
  • unordered_set是无序集合,即没有顺序
  • 头文件为
cpp 复制代码
#include<map>
#include<set>
#include<unordered_map>
#include<unordered_set>
  • 常用函数有:

  • 判断哈希表map是否存在某个键key

cpp 复制代码
1) map.find(key) != map.end() 若存在,则指向要查找的元素;若不存在,则指向end()
2) map.count(key) == 1/ >0/ !=0 count()的返回值只能为0/1,即不存在/存在
3) C++20中新增了map.contains(key) 返回bool值,表示是否存在key
  • map, unordered_map, unordered_set, vector, string等都可以使用begin()和end()的迭代器, 表示指向容器的第一个元素和最后一个元素的迭代器,例如
cpp 复制代码
auto it = map.begin()
it->first为it指向的map中元素的key
it->second为it指向的map中元素的value
  • 对STL库中的sort()函数,用于对容器或者普通数组的指定范围内元素做升序(默认)排序
cpp 复制代码
sort(nums.begin(), nums.end())
sort(nums.rbegin(), nums.rend())
相关推荐
code_whiter3 分钟前
C++10(list)
c++·windows·list
夕除5 分钟前
spring boot--08
开发语言·windows·python
狐狐生风12 分钟前
Python UV 完整安装教程
开发语言·python·uv
Kiyra15 分钟前
限流不是加个计数器就行:用 Lua 脚本实现多维度原子限流
开发语言·人工智能·网络协议·职场和发展·架构·lua·ai-native
雨落在了我的手上18 分钟前
初识java(二):数据类型与变量
java·开发语言
2301_8152795221 分钟前
实战分享实现 C++ 管理类单例模式:特点与最佳实践
javascript·c++·单例模式
xcjbqd028 分钟前
提升Python编程效率的五大特性
开发语言·python
平凡但不平庸的码农34 分钟前
Go GMP 调度模型详解
开发语言·后端·golang
2401_8784545340 分钟前
js的复习(一)
开发语言·javascript·ecmascript
旺仔老馒头.40 分钟前
【C++】类和对象(二)
开发语言·c++·后端·类和对象