C++中list、vector、map、set容器有何区别及各自用法详解?

2026-04-18 23:571阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计3102个文字,预计阅读时间需要13分钟。

C++中list、vector、map、set容器有何区别及各自用法详解?

C++ 容器区别:list、vector、map、set+ list + 封装链表,以链表形式实现,不支持[]运算符。+ 对随机访问的速度很慢(需要遍历整个链表)。+ 插入数据很快(不需要复制和移动数据,只需改变指针)。

c++容器list、vector、map、set区别

list

  • 封装链表,以链表形式实现,不支持[]运算符。
  • 对随机访问的速度很慢(需要遍历整个链表),插入数据很快(不需要拷贝和移动数据,只需改变指针的指向)。
  • 新添加的元素,list可以任意加入。

vector

  • 封装数组,使用连续内存存储,支持[]运算符。
  • 对随机访问的速度很快,对头插元素速度很慢,尾插元素速度很快
  • 新添加的元素,vector有一套算法。

map

  • 采用平衡检索二叉树:红黑树
  • 存储结构为键值对<key,value>

set

  • 采用平衡检索二叉树:红黑树
  • set中不包含重复的数据

Hash_Map

  • 采用hash算法加快查找过程,但需要更多内存存放hash桶元素,是一种采用空间换取时间的策略。
阅读全文

本文共计3102个文字,预计阅读时间需要13分钟。

C++中list、vector、map、set容器有何区别及各自用法详解?

C++ 容器区别:list、vector、map、set+ list + 封装链表,以链表形式实现,不支持[]运算符。+ 对随机访问的速度很慢(需要遍历整个链表)。+ 插入数据很快(不需要复制和移动数据,只需改变指针)。

c++容器list、vector、map、set区别

list

  • 封装链表,以链表形式实现,不支持[]运算符。
  • 对随机访问的速度很慢(需要遍历整个链表),插入数据很快(不需要拷贝和移动数据,只需改变指针的指向)。
  • 新添加的元素,list可以任意加入。

vector

  • 封装数组,使用连续内存存储,支持[]运算符。
  • 对随机访问的速度很快,对头插元素速度很慢,尾插元素速度很快
  • 新添加的元素,vector有一套算法。

map

  • 采用平衡检索二叉树:红黑树
  • 存储结构为键值对<key,value>

set

  • 采用平衡检索二叉树:红黑树
  • set中不包含重复的数据

Hash_Map

  • 采用hash算法加快查找过程,但需要更多内存存放hash桶元素,是一种采用空间换取时间的策略。
阅读全文