C++ Vectors总是连续的吗?

cpp*_*ame 2 c++ vector contiguous

可能重复:
std :: vector元素是否保证是连续的?

我遇到过一种技术,人们在C++中使用向量来接收或发送MPI操作的数据,因为它据说将元素连续存储在内存中.

但是,我仍然怀疑这种方法对于任何大小的向量是否都会保持稳健,特别是当向量增长到一定大小时,这种假设可能会崩溃.

以下是我所说的一个例子:

MPI_Recv( &partials[0] , partials.size() , mpi_partial , 0, 
         DALG_ELIMINATE_REQ_MSG ,MPI_COMM_WORLD , &status );
Run Code Online (Sandbox Code Playgroud)

Rod*_*ddy 5

是的,无论大小如何,C++向量总是连续的.

但这并不意味着当你缩小或扩展它们时它们不会在内存中移动......