【发布时间】:2018-02-26 16:24:39
【问题描述】:
我有这个指向向量的向量:
std::vector<std::shared_ptr<std::vector<int>>> vec;
我想将第一个指针初始化为指向空向量的指针。我试过这个:
vec.push_back(nullptr);
然后我想 push_back 一些值到 nullptr 指向的向量。我这样做了:
vec[0]->push_back(x);
我知道这是错误的,但最终会出现段错误。我试图用 make_shared() 而不是 nullptr 做一些事情,但我仍然不知道如何实现我提到的。谁能帮我解决这个例子?
【问题讨论】:
-
nullptr是从不“指向空向量的指针”。 -
“我试图用 make_shared() 代替 nullptr” 你应该向我们展示你的尝试,以便我们可以纠正它。
-
我怀疑你真的想要一个向量指针向量。你用它来解决什么问题?
-
可以直接用1个元素初始化
std::vector<std::shared_ptr<std::vector<int>>> vec { std::make_shared<std::vector<int>>() };
标签: c++ vector shared-ptr