下列选项哪些是正确的
2025-09-23 17:59:07首页
题库
面试
求职
学习
竞赛
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
下列选项哪些是正确的
[单选题]
下列选项哪些是正确的
对于unordered_map和map这两个容器,迭代器的有效性皆不受删除操作影响
对于unordered_map和map这两个容器,迭代器的有效性皆不受插入操作影响
为了保证代码的异常安全性,应该避免在构造函数中抛异常
为了保证代码的异常安全性,应该避免在析构函数中抛异常
查看正确选项
添加笔记
求解答(78)
邀请回答
收藏(1297)
分享
13个回答
添加回答
2
牛客773831号
此题答案有误. 正确答案 应该为AD
map 均不受影响
对于 unordered_map, 底层是hash_table 插入元素会导致迭代器失效。
http://en.cppreference.com/w/cpp/container/unordered_map/erase
References and iterators to the erased elements are invalidated.
Other iterators and references are not invalidated.
http://en.cppreference.com/w/cpp/container/unordered_map/insert
If rehashing occurs due to the insertion, all iterators are
invalidated. Otherwise iterators are not affected. References are
not invalidated. Rehashing occurs only if the new number of elements
is greater than
max_load_factor(
)
*bucket_count(
)
.
对于被删除的元素的迭代器,都是会失效的。
编辑于 2016-04-01 17:34:07
回复(3)
58
jxzheng95
答案应该为D。
http://www.cplusplus.com/reference/map/map/erase/
查看下边iterator
validity这项。同理可以看到map的insert,unorder_map的insert和erase操作的这项属性。
A选项:当unorder_map和map某迭代器it指向的元素被删除时,只有该迭代器it失效,其他的迭代器不会失效。
B选项:map插入时不会引起迭代器失效;unorder_map插入时一般情况下不会引起迭代器失效,只有当容器增长到需要rehash时,原来的所有迭代器失效。
C选项:构造函数抛出异常后,已经构造的成员对象会被逆序析构,申请的内存资源会被系统释放,不会调用析构函数。而且构造函数抛出异常是唯一表明构造失败的方法。
D选项:effective C++“条款08:别让异常逃离析构函数”指出来如果析构函数抛出异常,对于vector
发表于 2016-04-22 13:50:06
回复(3)
3
淇神
都屏蔽了,你还出来
发表于 2020-05-31 16:06:45
回复(0)
3
lilinl
构造函数抛出异常后,已经构造的成员对象会被逆序析构,申请的内存资源会被系统释放,不会调用析构函数,而且构造函数抛出异常是唯一表明构造失败的方法;
发表于 2018-09-21 15:46:57
回复(0)
0
ananFF
析构函数在对象消亡时即自动被调用。可以定义析构函数在对象消亡前做善后工作。
发表于 2023-03-25 19:52:17
回复(0)
0
天尊墨宇
选D 若在析构函数中抛异常,则对象会不完全析构,会造成内存泄露问题
发表于 2020-07-18 06:48:50
回复(0)
0
牛客256313279号
什么是惜购?
发表于 2020-04-09 09:27:40
回复(0)
0
长风与你
我滚去学习了
发表于 2019-09-24 00:06:39
回复(0)
0
sky_
A.被删除的迭代器元素会失效 B.当需要再哈希时,所有迭代器失效。
发表于 2017-08-03 23:09:37
回复(0)
0
rppp
若在析构函数中抛异常,则对象会不完全析构,会造成内存泄露问题
发表于 2017-07-29 16:05:01
回复(0)
0
whcs
https://msdn.microsoft.com/zh-cn/library/windows/apps/bb982522(v=vs.120)
发表于 2016-08-04 19:52:12
回复(0)
0
沫。
正确答案是D吧! B当插入要用到rehash时,迭代器还是会失效的
发表于 2016-05-05 17:12:25
回复(0)
0
远方的范特西
http://blog.csdn.net/stpeace/article/details/46507451
map的iterator有效性受到删除的影响(见链接) 答案应该为D
编辑于 2016-04-01 17:15:07
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
哈希
来自:2016乐视暑期实习生...
难度:
13条回答
1297收藏
11987浏览
热门推荐
相关试题
下列有关windows系统的EXE...
Windows
评论(10)
来自2016乐视暑期实习生招...
以下关于mysql复制关系,描述错...
数据库
SQL+MySQL
测试
后端开发
客户端开发
前端开发
人工智能/算法
数据
运维/技术支持
评论(22)
来自2016乐视暑期实习生招...
有一颗二叉树的前序遍历和后续遍历分...
树
评论(42)
来自2016乐视暑期实习生招...
对于根元素为最小值的二叉堆,下面说...
堆
评论(66)
来自2016乐视暑期实习生招...
头文件已经正常包含,以下代码在VS...
C++
C语言
评论(54)
来自2016乐视暑期实习生招...
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
刷真题、补算法、看面经、得内推
使用第三方账号直接登录使用吧:
更多
扫一扫,把题目装进口袋
求职之前,先上牛客
扫描二维码,进入QQ群
扫描二维码,关注牛客公众号
关于我们
加入我们
意见反馈
企业服务
校企合作
联系我们
免责声明
友情链接
公司地址:北京市朝阳区北苑路北美国际商务中心K1座一层-北京牛客科技有限公司
联系方式:010-60728802
投诉举报电话:010-57596212(朝阳人力社保局)
牛客科技© All rights reserved
admin@nowcoder.com
京ICP备14055008号-4
增值电信业务经营许可证
营业执照
人力资源服务许可证
京公网安备
11010502036488号
乌拉圭世界杯名单