【发布时间】:2015-03-27 16:50:57
【问题描述】:
我在初始化 std::vectors 数组时遇到问题。
我这样声明和初始化它:
vector<component_change*>* _changes;
_changes = new vector<component_change*> [numThreads];
希望它的形式与此相同:
int * foo;
foo = new int [5];
但是当我在初始化后遇到断点时,_changes 的大小为 0。 我做错了什么,我该如何解决?
我不想使用向量的向量,因为我需要的数量在整个程序中保持不变,但取决于当前的硬件。而且我不只是在寻找单个向量(每个向量将由不同的线程使用,然后在线程完成任务时合并)。
谢谢各位! :)
【问题讨论】:
-
“在整个程序中保持不变,但取决于当前的硬件”
std::array<>怎么样? -
@awesomeyi 谢谢,我会看看 :)
-
@awesomeyi 抱歉,我认为这不是我真正想要的。我使用 thread::hardware_concurrency() 来获取内核数,然后创建一个该大小的新数组,我认为我不能将其传递给 std::array。或者我可以吗?
-
@NeilKirk:除非每个线程有几个组件,在这种情况下它是
std::vector<std::vector<component_change>>
标签: c++ arrays dynamic vector std