gpt4 book ai didi

C++ emplace_back 参数

转载 作者:可可西里 更新时间:2023-11-01 18:29:07 28 4
gpt4 key购买 nike

这是我日常工作中的一段代码。我只想问你这两种情况有什么区别,尤其是在性能方面。

std::vector< std::pair<std::string, std::string> > aVec;

// case 1
aVec.emplace_back("hello", "bonjour");

// case 2
aVec.emplace_back(std::pair("hello", "bonjour"));

以下问题:

这两种情况的 std::list 怎么样?

最佳答案

emplace_back将就地构造元素,传入的参数将完美转发给元素的构造函数。

对于第一种情况,概念上只需要一个步骤,即 std::pair 的适当构造函数将被调用以直接在 vector 中构造元素。

对于第二种情况,需要三个步骤; (1) 适当constructor将被调用以构造一个临时 std::pair,(2) 元素将从临时 std::pair 移动到 vector 中就地构造, (3) 临时std::pair被销毁。

关于C++ emplace_back 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43273718/

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