面试遇到的问题
2016-09-28 22:08
183 查看
1、迭代器失效问题
最重要的问题是v.erase()返回值是当前删除节点的下一个节点,第一次写代码时,虽然想到了,但一时脑热,写出了下面的代码
很明显,这样在删除一个节点后直接访问内存崩溃
就是一个小小的erase的问题,直接导致面试没过,以后一定要注意这些细节。。。。。
2、一个sizeof引发的血案
看下面的代码
上面代码输出什么,我当时头脑发热,直接觉得这个是错误的,当时不知道这个题考点在哪。
在windows10,vs2013下,输出为16,因为sizeof为求类型的大小,vector底层有四个成员变量
![](http://img.blog.csdn.net/20160928215805292)
所以对vector求类型大小为16.
最重要的问题是v.erase()返回值是当前删除节点的下一个节点,第一次写代码时,虽然想到了,但一时脑热,写出了下面的代码
vector<int>::iterator it = v.begin(); while (it != v.end()) { if ((*it) == 3) { v.erase(it); } else { ++it; } }
很明显,这样在删除一个节点后直接访问内存崩溃
就是一个小小的erase的问题,直接导致面试没过,以后一定要注意这些细节。。。。。
2、一个sizeof引发的血案
看下面的代码
vector<T> v; v.reserve(10); cout << sizeof(v) << endl;
上面代码输出什么,我当时头脑发热,直接觉得这个是错误的,当时不知道这个题考点在哪。
在windows10,vs2013下,输出为16,因为sizeof为求类型的大小,vector底层有四个成员变量
所以对vector求类型大小为16.
相关文章推荐
- 面试中遇到的问题
- 面试里经常遇到的一个关于StringBuffer和final的问题
- 面试遇到的问题
- hadoop面试可能遇到的问题
- 最近面试遇到的几个问题
- 继续发两道面试中遇到的问题,大家做做看。^_^
- Linux面试时遇到的问题
- C/C++ 面试前 遇到问题总结
- 最近面试中遇到的海量数据库设计问题
- hadoop面试时可能遇到的问题,你能回答出几个 ?
- 面试的时候遇到的问题:二叉树
- 在面试时遇到不了解的问题,如何顺畅的与面试人员交流?
- 几次面试都遇到同一个问题,真是郁闷,长时间不写正则快忘了
- 技术人员在面试中常遇到的问题
- 55个常遇到的面试问题
- 面试中可能遇到的问题
- 面试遇到的20大问题
- 15个应聘不同职位所遇到的让你摸不着头脑的面试问题
- Java基础面试遇到问题(一)
- hadoop面试时可能遇到的问题,你能回答出几个 ?