C++ 指针与 std::vector:对长尺寸变量有什么影响?

Wew*_*See 2 c++ pointers vector

我有 C 背景,我正在用 C++ 重新编码一些旧代码......在这个过程中,我开始使用 C++ 向量,它非常易于使用!

向量能很好地处理很长的数据流吗?例如,在音频应用程序中,加载一首立体声 3 分钟歌曲需要将近 16M 的浮点数

float *stereoSong = NULL;
stereoSong = new floats[15787800];
Run Code Online (Sandbox Code Playgroud)

不必处理向量的内存管理非常好,但我想知道 C++ 向量是否可以很好地处理大量数据

谢谢!

Ast*_*ngs 6

这是一个错误的比较。

首先,向量使用指针。他们必须。向量是使用动态分配为您提供数据项缓冲区的容器。你可以尝试“用指针”来实现同样的事情,但你最终会得到一个介于向量和更糟糕版本的向量之间的东西。

因此,向量可以处理尽可能多的数据new double[]——也就是说,很多。