与"运算符[]"不匹配(操作数类型为"std::unique_ptr<std::vector<int> >"和"int")



我有一个std::unique_ptr<std::vector<int>>,我正在尝试使用[]运算符访问一个元素。如何访问std::unique_ptr中包含的向量的特定索引?

#include <memory>
#include <vector>
int main()
{
std::unique_ptr<std::vector<int>> x;
x[0] = 1;
}

谢谢

你有一个指向向量的指针,所以你必须取消引用它

(*x)[0] = 1;

x->at(0) = 1;

但是,我很好奇,为什么您需要动态分配std::vector?该容器已经动态分配底层数组,因此我只需要直接xstd::vector<int>

如果您确实保留了指向矢量的指针,至少请确保在使用之前分配对象

auto x = std::make_unique<std::vector<int>>();

相关内容

  • 没有找到相关文章

最新更新