gpt4 book ai didi

c++ - 有什么方法可以初始化 unique_ptr 的 vector 吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:10:40 25 4
gpt4 key购买 nike

例如

struct A
{
vector<unique_ptr<int>> m_vector { make_unique<int>(1), make_unique<int>(2) };
};

我尝试了以上但失败了。有什么方法可以初始化 unique_ptr 的 vector ?

最佳答案

您不能从初始化列表中移动,因为元素是 const . §8.5.4 [dcl.init.list]/p5:

An object of type std::initializer_list<E> is constructed from an initializer list as if the implementation allocated an array of N elements of type const E, where N is the number of elements in the initializer list. Each element of that array is copy-initialized with the corresponding element of the initializer list, and the std::initializer_list<E> object is constructed to refer to that array.

只能复制,不能复制一个unique_ptr因为它只能移动。

你必须使用 push_backemplace_back等在构建之后填充 vector 。

关于c++ - 有什么方法可以初始化 unique_ptr 的 vector 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25827435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com