gpt4 book ai didi

c++ - 如何 make_shared 计数次,分配不同的区域而不重复循环?

转载 作者:搜寻专家 更新时间:2023-10-31 00:09:29 24 4
gpt4 key购买 nike

如何make_shared计算次数,分配不同的区域而不重复循环?

我有以下代码:

for( unsigned int count = 0; count < demandedSize; ++count  )
{
m_connectionList.push_back( std::make_shared< Foo >( m_ip, m_port ));
}

如何缩短这个没有循环

我知道 std::vector 接收第二个参数作为 const T&,但在那种情况下所有 shared_ptr 都指向同一个地址(值被复制)。

std::vector< std::shared_ptr<Foo> > vet( demandedSize, std::make_shared<Foo>( m_ip, m_port ) );

如何执行 make_shared count 次,并分配不同的区域作为结果而不返回循环

最佳答案

这应该可以解决问题:

std::generate_n( back_inserter( m_connectionList ), demandedSize, [this]{
return std::make_shared< Foo >( m_ip, m_port ) );
});

Live Example on Coliru.

关于c++ - 如何 make_shared 计数次,分配不同的区域而不重复循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43102934/

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