鱼C论坛

 找回密码
 立即注册
查看: 1074|回复: 8

[已解决]C++push_back和emplace_back的问题

[复制链接]
发表于 2020-8-4 11:13:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
今天编程时碰到的问题如图,为什么emplace会报错,顺便问一下{1,2,3,4}表示的到底是一个数组还是向量还是都不是?
最佳答案
2020-8-4 11:28:23
https://kb.kutu66.com/others/post_12552796
qst.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-8-4 11:18:16 | 显示全部楼层
本帖最后由 baige 于 2020-8-4 11:19 编辑

{1,2,3,4}是数组 vector也是数组
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-4 11:21:13 | 显示全部楼层
是不是 emplace_back 只支持单个元素?比如字符串,整数……
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-4 11:21:42 | 显示全部楼层
baige 发表于 2020-8-4 11:18
vector没有emplace_back这个成员函数吧.

有的,我用了挺久了,以前一直以为emplace_back和push_back达到的效果是一样的,结果今天报错了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-4 11:22:16 | 显示全部楼层
QAQ
qst2.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-8-4 11:26:04 | 显示全部楼层
liuzhengyuan 发表于 2020-8-4 11:21
是不是 emplace_back 只支持单个元素?比如字符串,整数……

可以传多个元素,多个传进去会直接调用存储的type类型的构造函数在末尾构造,而且我这里按我的理解应该是只传了一个向量进去,应该也没多个元素把。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-4 11:27:51 | 显示全部楼层
本帖最后由 baige 于 2020-8-4 11:28 编辑

试一下这样vec.emplace_back(std::initializer_list<int>{1,2,3,4});
具体可以看下面的链接
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-4 11:28:23 | 显示全部楼层    本楼为最佳答案   
https://kb.kutu66.com/others/post_12552796
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-4 12:35:00 | 显示全部楼层
baige 发表于 2020-8-4 11:28
https://kb.kutu66.com/others/post_12552796

太感谢了兄弟!QAQ
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-12 23:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表