gpt4 book ai didi

c++ - 如何简洁地将默认构造的对象插入 std::vector

转载 作者:太空宇宙 更新时间:2023-11-04 14:43:25 25 4
gpt4 key购买 nike

std::vector::insert() 的所有重载都需要一个值参数,即要插入的项。但是,我的元素类型很复杂,我宁愿插入一个空构造的元素。也就是说,我正在寻找一种无需重复类型名称即可执行以下操作的方法。

std::vector<Long_and_complicated_type_name> v;
...
v.insert(iter, Long_and_complicated_type_name());

虽然我主要对 insert 感兴趣,但 push_back 也存在同样的问题。

最佳答案

std::vector 方法 emplaceemplace_back 可以达到这个目的。

template< class... Args > 
iterator emplace( const_iterator pos, Args&&... args );

转发的args可以不存在,允许

std::vector<Long_and_complicated_type_name> v;
...
v.emplace(iter);

甚至

v.emplace_back();

关于c++ - 如何简洁地将默认构造的对象插入 std::vector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39025683/

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