c++ - C++中数组的动态大小?

标签 c++ arrays list vector containers

我很困惑。我不知道我应该使用什么容器。我先告诉你我需要什么。基本上我需要一个可以存储 X 个对象的容器(并且对象的数量是未知的,它可能是 1 - 50k)。

我读了很多,在这边array vs list它说:如果对象的数量未知,则需要调整数组的大小(我不确定如何在 C++ 中调整数组的大小),并且它还声明如果使用链表,如果你想搜索某个项目,它将从头到尾循环(迭代)(反之亦然),而数组可以指定“索引处的数组对象”。

然后我寻求其他解决方案、 map 、 vector 等。就像这个:array vs vector .一些响应者说永远不要使用数组。

我是C++新手,之前只用过array、vector、list和map。现在,就我而言,您会推荐我使用哪种容器?让我重新表述一下我的要求:

  • 需要成为容器
  • 存储的对象数量未知但数量巨大(可能为 1 - 40k)
  • 我需要遍历容器以找到特定对象

最佳答案

std::vector 是您所需要的。
选择 STL 容器时,您必须考虑两件事。

  1. 您要存储的数据
  2. 您想对存储的数据执行的操作

SO 上的一个问题中有一个很好的图表,它说明了这一点,我找不到它的链接,但我很久以前就保存了它,它是: STL container selection flow chart

关于c++ - C++中数组的动态大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7021529/

相关文章:

c++ - ROS包可视化

Java ArrayList,在一行中获取多种类型(int,String等)的用户输入

c - 如何在 C 中制作成对列表?

python - 为什么复制时我的原始嵌套列表会发生变化?

c++ - 旋转矩阵/图像90度C++的公式

c++ - 未加入且主进程被终止时的线程行为

c++ - 你如何在 Linux 上用 C++ 播放或录制音频(到 .WAV)?

c++ - 将数组 (&) 传递给函数 c++,运行时错误

java - 通用集合可以序列化吗?

list - 如何修改列表中的项目?