我有一个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
? 该容器已经将动态分配底层数组,所以我将直接x
成为一个std::vector<int>
。
如果您确实保留了指向向量的指针,请至少确保在使用之前分配该对象
auto x = std::make_unique<std::vector<int>>();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句