gpt4 book ai didi

c++ - 在 vector 初始化中为对象调用非默认构造函数

转载 作者:太空狗 更新时间:2023-10-29 21:29:41 25 4
gpt4 key购买 nike

我想在构造函数的初始化列表中初始化一个 vector 。 vector 由具有参数化构造函数的对象组成。我拥有的是:

Class::Class() : 
raster_(std::vector< std::vector<Cell> > (60, std::vector<Cell>(80)))
{
...

如何在上一行中使用两个参数调用 Cell::Cell?显而易见:

raster_(std::vector< std::vector<Cell(true,true)> > (60, std::vector<Cell(true,true)>(80)))

没用。

最佳答案

你应该试试:

Class::Class() : 
raster_(60, std::vector<Cell>(80, Cell(true, true)))
{
/* ... */
}

请注意,我删除了无用的 std::vector<std::vector<Cell> >从初始化程序。另请注意,这可能非常低效,具体取决于复制 Cell 的成本。 :

  • 它创建一个 std::vector<Cell>通过复制提供值的 80 倍 Cell(true, true)
  • 它创建一个 std::vector<std::vector<Cell> >通过复制 60 倍提供的 vector (它本身包含 80 个元素)!

关于c++ - 在 vector 初始化中为对象调用非默认构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4267313/

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