首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

火石软件口试 恶心

2013-01-08 
火石软件面试 恶心我发现好多面试官都喜欢说这个有点问题啊 你自己去网上找找吧(至于有什么问题,提一下

火石软件面试 恶心
我发现好多面试官都喜欢说
"这个有点问题啊 你自己去网上找找吧"(至于有什么问题,提一下要几秒钟的事?)


记得还有个问题
让我写个关于iterator的,有一句是

iter++;

他说难道你不知道iter++比++iter更慢吗?

so,弱弱的问下:对于非内置对象 像刚刚这种临时变量编译器会优化掉吗?
内置对象印象中是会优化掉的。
[解决办法]
这个有点像 i++ 和 ++i 的意思么 区别是先加 还是 先赋值
[解决办法]

引用:
我发现好多面试官都喜欢说
"这个有点问题啊 你自己去网上找找吧"(至于有什么问题,提一下要几秒钟的事?)


记得还有个问题
让我写个关于iterator的,有一句是

iter++;

他说难道你不知道iter++比++iter更慢吗?

so,弱弱的问下:对于非内置对象 像刚刚这种临时变量编译器会优化掉吗?
内置对象印象中是会优化掉的。
   ……


严格来说,是一样的。
[解决办法]
++it返回引用,效率高
[解决办法]
这个单独出来有区别吗。除非是放在for或者while中
[解决办法]
他们不知道编译器有个功能叫做优化
[解决办法]
引用:
他说难道你不知道iter++比++iter更慢吗?

回答知道,然后告诉他为何iter++慢不就行了。面试官是考你知不知道++i和i++各自做了些什么。要是真比程序速度快慢,那就该想想算法对不对,能不能剪枝。
[解决办法]
it++需要一个额外的临时对象,存放原本位置并返回。而++it直接返回引用
自己对++重载试一试就就明白的

[解决办法]
没办法,你们地位不对等,是你非要去他那里,不是他求你去。否则他不会面试的,直接就要你了
[解决办法]
>so,弱弱的问下:对于非内置对象 像刚刚这种临时变量编译器会优化掉吗?
>内置对象印象中是会优化掉的。

effective和exceptional C++都有提到这个问题
我记不清楚那些情况下会被优化了
但是这两本书的共同结论是
"写C++的好习惯,没必要别用iter++,用++iter"
面试官想考的,也许不只是你懂不懂iter++和++iter
的差别,他们还想知道你是否注重"习惯的养成"

我觉得这是小问题,只要有心,一定可以练起来
但我也遇过不少人完全不重视这些东西的
"什麽好习惯?你以为你很行吗?老子写的东西会动就行了"
面试官怎麽想我就不知道了
[解决办法]
引用:
>so,弱弱的问下:对于非内置对象 像刚刚这种临时变量编译器会优化掉吗?
>内置对象印象中是会优化掉的。

effective和exceptional C++都有提到这个问题
我记不清楚那些情况下会被优化了
但是这两本书的共同结论是
"写C++的好习惯,没必要别用iter++,用++iter"
面试官想考的,也许不只是你懂不懂iter++和++iter
的……

代码书写习惯忘打了,发完后想起来了,但又懒得再发一条回复。

好的面试官想的应该是这些。搓的么,网上见过几个帖子,然后就想效率高呀。
[解决办法]
it++ 如果类的操作符被重载,这时候可能不会优化的,例如复数运算的类,重载++不出奇的。这时候函数写得好,编译器就可能优化,但依然不保障一定优化。但++it 就没有该问题了。

楼主说的标准库的 iterator ,iterator 也是一个类,就为该类实现得好,无论前+或后+编译器都会处理掉。但是如果发布的是DEBUG版,就不一定会被优化了。因为我们写的软件中,有很多情况下是不得不发布DEBUG版本,甚至Release版本因错误太多且无法捕捉而无法发行。

所以好的编程习惯,还是有益的。
[解决办法]
引用:
引用:他们不知道编译器有个功能叫做优化
他说"不会优化的啊"
非内置的也会优化?

自己比较一下release版生成的代码不就知道了么
[解决办法]
不去也罢,一点这样的老是蛋疼!

热点排行