首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
联易融
校招火热招聘中
官网直投
联易融
校招火热招聘中
官网直投
相关推荐
秋意零
04-23 10:13
门头沟学院 计算机类
简历求拷打,不玻璃心,听劝
最后再改一次简历
点赞
评论
收藏
转发
MRJesus
04-23 11:09
门头沟学院 计算机类
阿里国际 LAZADA 30min 挂
自我介绍项目介绍登录登出如何做的有没有防止注册的功能(同一个IP)登录登出还有其他功能吗拦截器怎么实现的关注功能怎么做的(数据库设计)秒杀功能怎么做的(减库存过程中失败了怎么办,事务出问题了怎么回滚)消息队列为什么用redis,不用其他中间件Feed流怎么做的,是不是会清空推送List怎么处理缓存击穿、缓存穿透、缓存雪崩布隆过滤器优点缺点JDK1.8的HashMap底层是什么样的结构,其他成员变量和功能?JDK1.7和JDK1.8解决Key冲突的时候有什么区别JVM如何保证变量可见性关键字volatile如何做到防止指令重排序的公平锁和非公平锁有什么区别共享锁和独占锁有什么区别(不是读写锁)T...
暑期实习面试经历
点赞
评论
收藏
转发
Ledonphone
04-23 11:13
门头沟学院 材料类
25本非科班的游戏引擎找暑期实习复盘
bg:某中九本的非科班电子信息专业(buff拉满),无竞赛无科研无绩点,只会一点cpp,搓过opengl和unity的项目,去年去小某书做图形渲染的实习,实际上做的是特效相关的渲染,感觉有点没意思,于是今年想进军游戏行业玩图形学(结果进不了一点) 投递:三月中旬才开始投,游戏客户端几乎完全没投(不想去),引擎岗开的也不多,投了十多家面的身心俱疲,拿了一个offer就直接收工不面了。具体投递情况(部分): 公司名称 岗位名称 投递状况(附笔试成绩) 米哈游 游戏客户端开发 笔试挂(1/3) 吉比特 引擎开发实习生 笔试挂(2/4) 西山居 技术训练营 一面无回复 阿里灵...
投递不鸣科技等公司10个岗位 >
本周投递记录
实习必须要去大厂吗?
点赞
评论
收藏
转发
点赞
收藏
评论
分享
回复帖子
招聘动态
查看更多
联易融2024届营销管培生校园招聘
全站热榜
1
...
一个CS人在字节升级打怪(实习转正版)
1.2W
2
...
中科大软件工程研二,字节实习一年多,是时候了...
1.2W
3
...
📢【有奖征集】非技术岗位薪资爆料💰💰💰
9011
4
...
0offerのloser记录2024所有面试(全挂)
6463
5
...
4.25校招&实习招聘信息汇总
5245
6
...
配不上自己的野心,也辜负了所受的苦难
5138
7
...
阿里国际 1个小时40分钟
5046
8
...
【爆薪资有奖】软件开发2024薪资爆料活动!火热开启!
5004
9
...
盲审
4550
10
...
腾讯音乐-QQ音乐前端一面(秒过)
4230
正在热议
#
牛客帮帮团来啦!有问必答
#
327768次浏览
6914人参与
#
机械制造薪资爆料
#
249467次浏览
3005人参与
#
非技术岗薪资爆料
#
3667次浏览
91人参与
#
第一次面试
#
12370次浏览
190人参与
#
华为求职进展汇总
#
429126次浏览
4297人参与
#
如果校招重来我最想改变的是
#
69097次浏览
1372人参与
#
找工作,你会甘心进小厂还是猛冲大厂
#
21531次浏览
208人参与
#
晒一晒我的offer
#
2740287次浏览
49301人参与
#
除了offer,现在你还缺点啥?
#
1654次浏览
37人参与
#
应届生应该先就业还是先择业
#
10248次浏览
102人参与
#
来聊聊机械薪资天花板是哪家
#
16268次浏览
124人参与
#
面试被问第一学历差时该怎么回答
#
13268次浏览
148人参与
#
机械人的薪资开到多少,才适合去?
#
40634次浏览
243人参与
#
通信硬件人笔面经互助
#
55338次浏览
1262人参与
#
毕业租房也有小确幸
#
18915次浏览
1210人参与
#
为什么那么多公司毁约
#
31728次浏览
267人参与
#
美的求职进展汇总
#
30572次浏览
370人参与
#
通信硬件2024笔试面试经验
#
76814次浏览
859人参与
#
百度工作体验
#
18781次浏览
204人参与
#
实习工作,你找得还顺利吗?
#
4540次浏览
67人参与
牛客网
牛客企业服务