gpt4 book ai didi

c++ - 调整嵌套 std::vectors 的大小

转载 作者:搜寻专家 更新时间:2023-10-31 01:09:37 25 4
gpt4 key购买 nike

如果我有:

std::vector<std::vector<double> > vec

假设我为每个 vec[0], vec[1], ... vec[vec.size()-1] 分配空间。

如果我要打电话:

vec[3].resize(100)

是否有可能在 vec[3] 之前或之后分配的 vector 会被重新定位吗?

我问的原因是我在 openmp 部分有一个嵌套 vector ,如上所示。每个线程控制vec[threadnum] .这些线程会进行一些调整。我想知道一个线程是否有可能调整大小 vec[thread]这将导致其他人可能会转移。

最佳答案

当您执行 vector 的调整大小(或调用任何其他方法)时,不会修改其他 vector 。

事实上,当你调用一个对象的方法时,其他不相关的对象并不会改变它们的状态。

如果我们想象所有 vector 都将它们的数据存储在公共(public)的连续内存块中,那么我们这里有 vector 的 vector 这一事实可能会令人困惑。但事实并非如此。每个 vector 都有自己的内存区域,每个 vector 都可以独立地重新分配内存(“父” vector 根本不知道重定位)。

关于c++ - 调整嵌套 std::vectors 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16865717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com