【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())
相关推荐
坐吃山猪5 分钟前
Electron04-系统通知小闹钟
开发语言·javascript·ecmascript
翔云 OCR API5 分钟前
护照NFC识读鉴伪接口集成-让身份核验更加智能与高效
开发语言·人工智能·python·计算机视觉·ocr
草莓熊Lotso13 分钟前
《算法闯关指南:优选算法--前缀和》--31.连续数组,32.矩阵区域和
c++·线性代数·算法·矩阵
程序喵大人14 分钟前
CMake入门教程
开发语言·c++·cmake·cmake入门
csuzhucong15 分钟前
斜转魔方、斜转扭曲魔方
前端·c++·算法
我不会插花弄玉15 分钟前
类与对象-上【由浅入深-C++】
c++
郝学胜-神的一滴19 分钟前
Horse3D游戏引擎研发笔记(十):在QtOpenGL环境下,视图矩阵与投影矩阵(摄像机)带你正式进入三维世界
c++·3d·unity·游戏引擎·godot·图形渲染·unreal engine
半生过往31 分钟前
前端运行PHP 快速上手 使用 PHPStudy Pro 详细搭建与使用指南
开发语言·前端·php
zlpzlpzyd33 分钟前
ecmascript中Promise和async/await的区别
开发语言·前端·ecmascript
凛_Lin~~40 分钟前
安卓 Java线程八股文 (线程、多线程、线程池、线程安全)
android·java·开发语言