首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
我怕是牛客第一菜
2019-07-23 15:52
已编辑
字节跳动_后端
关注
已关注
取消关注
问各位CPP大佬一个问题
push_back时到底发生了啥?我理解是拷贝构造 就没了 求解答 谢谢
#题解#
提示
全部评论
推荐
最新
楼层
麻烦别在我坟头蹦迪
阿里巴巴_新零售事业群_开发工程师
参数是传引用,应该就是拷贝构造函数。还有个知识点是vector空间不够了怎么办。
点赞
送花
回复
分享
发布于 2019-07-23 15:59
ChessC
Java
前面回答的比较乱,后来我又想了一下以及试验了一下: 个人理解是这样的,分为两种情况讨论。 (1)如果我们是先构造一个类对象,之后再进行push_back(),那么应该是调用一次拷贝构造函数 (2)如果我们是在push_back()的同时,在push_back中构造一个对象,那么实际上是调用一次构造函数,之后调用一次移动构造函数(C++11中的右值以及移动构造函数) 而由于右值引用的概念,因此,C++11中有emplace_back来实现和push_back相同的功能,但是此时,和上面(2)相同的情况下,仅仅有一次构造函数调用,之后Move直接移交所有权(因此emplace_back的优势也在这里,少了一次调用) 可以看下面的代码试一下: struct President { std::string name; std::string country; int year; President(std::string p_name, std::string p_country, int p_year) : name(std::move(p_name)), country(std::move(p_country)), year(p_year) { std::cout << "I am being constructed.\n"; } President(const President& other) //拷贝构造函数 : name(std::move(other.name)), country(std::move(other.country)), year(other.year) { std::cout << "I am being copy constructed.\n"; } President(President&& other) //移动构造函数 : name(std::move(other.name)), country(std::move(other.country)), year(other.year) { std::cout << "I am being moved.\n"; } President& operator=(const President& other); }; int main() { std::vector<President> elections; std::cout << "emplace_back:\n"; elections.emplace_back("Nelson Mandela", "South Africa", 1994); //只有一次构造 std::vector<President> reElections; std::cout << "\npush_back:\n"; reElections.push_back(President("Franklin Delano Roosevelt", "the USA", 1936)); //上面是提到的(2)的情形,调用构造+移动 std::vector<President> reElections; President pb=President("Franklin Delano Roosevelt", "the USA", 1936); reElections.push_back(pb); //上面是(1)的情形,调用拷贝构造函数 }
点赞
送花
回复
分享
发布于 2019-07-23 16:54
滴滴
校招火热招聘中
官网直投
滴滴
校招火热招聘中
官网直投
相关推荐
牛客674665490号
今天 17:57
河南大学 计算机类
亚信实习
刚刚面完亚信,亚信压榨吗,能不能体验一把工作流程,学点东西求求指点了,最近被实习搞得很烦
找实习多的是你不知道的事
点赞
评论
收藏
转发
与床榻为伍
05-11 23:54
语音/视频/图形开发
程序员的初恋字体
visual c++6.0,这个字体叫啥呀(怀念大一了)
点赞
评论
收藏
转发
王者648
05-17 14:30
香港中文大学
不愧是ATMD大厂出来的人才啊
在小红书一个在阿里、字节、美团都呆过的小姐姐整理的租房贴!!!小姐姐现在在美团上班,以美团为原点整理了望京这块的租房攻略图1是位置示意+图2对应序号的小区详细介绍你们在ATMD工作过的人都是这样善良又牛逼的吗!!let's 狠狠学习!!!以及,有没有上海抖音人也出份攻略,即将要租房的孩子迎风期盼 #ATMD# #美团# #抖音# #阿里# #租房# #租房前辈的忠告#
租房前辈的忠告
点赞
评论
收藏
转发
电子老李
03-26 14:44
已编辑
嵌入式软件工程师
24嵌入式开发,大家能帮忙看看简历吗
#嵌入式软件开发简历# #嵌入式# #嵌入式开发工程师# #春招你拿到offer了吗# 二本院校嵌入式求职这么难吗?大家给给意见呗,投简历投emo了
春招你拿到offer了吗
点赞
评论
收藏
转发
点赞
收藏
评论
分享
回复帖子
招聘动态
查看更多
滴滴
2025届秋招储备实习生招聘
全站热榜
1
...
盲审已过,答辩已过,工作已签
2.7W
2
...
聪明人看的Java后端入门路线(应该比大多数高手给的靠谱)
1.0W
3
...
实习难求——做个总结
8651
4
...
pcg qq 一面
7331
5
...
腾讯一面凉经 5.16
5623
6
...
25届暑期实习中后期更容易拿offer
5239
7
...
26届菜鸡投了一个月大厂日常,0面试绷不住了呀。听说9月后机会可能会多起来,感觉要被迫继续沉淀了之前和导师聊,说找到大厂实习的话可以去,对就业帮助大,小厂的话就emmm投了快一个月,老板上打招呼绝大数
4107
8
...
二本漫漫求职路......
4065
9
...
虎哥の致谢
2872
10
...
真别学计算机了
2536
正在热议
#
牛客帮帮团来啦!有问必答
#
771581次浏览
12149人参与
#
机械制造薪资爆料
#
312810次浏览
3613人参与
#
海康威视求职进展汇总
#
97012次浏览
1172人参与
#
夸夸我的求职搭子
#
65791次浏览
808人参与
#
毕业租房也有小确幸
#
26519次浏览
1474人参与
#
荣耀求职进展汇总
#
67599次浏览
679人参与
#
你的工作大概什么时候入职?
#
4022次浏览
51人参与
#
简历无回复,你会继续海投还是优化再投?
#
22347次浏览
316人参与
#
非技术岗是怎么找实习的
#
76785次浏览
1429人参与
#
打工人的辛酸
#
8924次浏览
145人参与
#
实习生应该准时下班吗
#
79361次浏览
587人参与
#
本周投递记录
#
201557次浏览
5122人参与
#
找工作中的意难平
#
193554次浏览
3435人参与
#
产品实习,你更倾向大公司or小公司
#
38333次浏览
588人参与
#
谈薪时HR压价该怎么应对
#
37962次浏览
255人参与
#
Offer比较,你最看重什么?
#
52345次浏览
501人参与
#
投递实习岗位前的准备
#
617625次浏览
11007人参与
#
如何写一份好简历
#
269061次浏览
4029人参与
#
学历对求职的影响
#
138075次浏览
1572人参与
#
今年形式下双非本找得到工作吗
#
7985次浏览
164人参与
牛客网
牛客企业服务