【发布时间】:2018-05-04 12:42:47
【问题描述】:
我有一个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;
}
谢谢
【问题讨论】:
-
存储动态分配的
std::vector的目的是什么?你有这个要求吗? -
你有一个指向向量的指针,但它没有指向任何地方。
-
至于你的问题,你还会怀疑是不是简单的非智能指针?喜欢
std::vector<int>* x;?智能指针的行为仍然像一个指针。 -
unique_ptr 上有一个自定义删除器,因此一旦超出范围,它会将内存清空为 0xFF。我没有把它包括在内,因为我认为它不相关。
-
我们正在对不执行任何自动消隐的嵌入式处理器进行编程。我们将用于解密等的对称密钥等数据置空。
标签: c++ vector std smart-pointers