C++push_back和emplace_back的问题
今天编程时碰到的问题如图,为什么emplace会报错,顺便问一下{1,2,3,4}表示的到底是一个数组还是向量还是都不是?本帖最后由 baige 于 2020-8-4 11:19 编辑
{1,2,3,4}是数组 vector也是数组 是不是 emplace_back 只支持单个元素?比如字符串,整数…… baige 发表于 2020-8-4 11:18
vector没有emplace_back这个成员函数吧.
有的,我用了挺久了,以前一直以为emplace_back和push_back达到的效果是一样的,结果今天报错了 QAQ liuzhengyuan 发表于 2020-8-4 11:21
是不是 emplace_back 只支持单个元素?比如字符串,整数……
可以传多个元素,多个传进去会直接调用存储的type类型的构造函数在末尾构造,而且我这里按我的理解应该是只传了一个向量进去,应该也没多个元素把。。。 本帖最后由 baige 于 2020-8-4 11:28 编辑
试一下这样vec.emplace_back(std::initializer_list<int>{1,2,3,4});
具体可以看下面的链接 https://kb.kutu66.com/others/post_12552796 baige 发表于 2020-8-4 11:28
https://kb.kutu66.com/others/post_12552796
太感谢了兄弟!QAQ
页:
[1]