'operator[]' 不匹配(操作数类型是 'std::unique_ptr<std::vector<int> >' 和 'int')

cdn

我有一个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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

'operator ='不匹配(操作数类型为'std :: vector <int>'和'int'

'operator+' 不匹配(操作数类型是 'std::vector' 和 'std::vector::size_type {aka long unsigned int}')

'operator + ='不匹配(操作数类型为'std :: basic_ostream <char>'和'int')

与'operator ='不匹配(操作数类型为'__gnu_cxx :: __ alloc_traits <std :: allocator <std :: vector <int>>>

错误:不匹配'operator >>'(操作数类型为'std :: istream'{aka'std :: basic_istream <char>'}和'const int')|

错误:与“ operator +”不匹配(操作数类型为“ std :: __ cxx11 :: list <int>”和“ int”)|

std :: vector <std :: unique_ptr <int>>不编译

如何理解C ++错误,“不匹配'operator =='(操作数类型为'std :: pair'和'const int')”?

错误:'operator[]' 不匹配(操作数类型是 'std::map<std::__cxx11::basic_string<char>, int>' 和 'char')

如何调整std :: vector <std :: queue <std :: unique_ptr <int >>>的大小?

错误:“ operator []”不匹配(操作数类型为“ QVector <int>”和“ QCharRef”)

错误:“ operator +”不匹配(操作数类型为“ int”和“ class”)

错误:'operator>>' 不匹配(操作数类型为 'std::istream' {aka 'std::basic_istream<char>'} 和 'Oper')

错误:“operator<<”不匹配(操作数类型为“std::basic_ostream<char>”和“<unresolved重载函数类型>”)

不匹配调用 '(std::vector<std::vector<int> >) (int, std::vector<int>)'

没有运算符“>>”匹配这些操作数操作数类型是:std::istream>>int

'operator <<'不匹配(操作数类型为'std :: ostream'{aka'std :: basic_ostream <char>'}和'const std :: type_index')

错误: ? 的操作数:具有不同类型的“int”和“std::basic_ostream<char>”

为什么我不能使用{std :: move(first),std :: move(second)}实例化std :: vector <std :: unique_ptr <int >>?

std::vector<std::pair<int, float>> 和 void 错误

std :: vector <int>到std :: vector <enum>

将std :: vector <std :: unique_ptr <int>>的所有权转移到正在构造的类的正确方法

根据对对std :: pair <int,std :: unique_ptr <const T>>的向量进行排序

在C ++中初始化静态std :: map <int,unique_ptr <int >>

区别黑白 std::vector<int> V(N) 和 std::vector<int> V[N]?

不兼容的操作数类型Die和Int

二进制“ operator +”类型为“ int *”和“ int *”的无效操作数

为什么QString和vector <unique_ptr <int >>在这里看起来不兼容?

is_assignable和std :: unique_ptr