学习C++;以一种基于迭代器的方式:有利于获得背景,但对于获得一份工作是否实用? 我知道这听起来像是一个基于意见的问题,但我认为它是足够具体的,因为它是一个关于现实C++实现的问题。p> 我是一名大学数学系的学生,我一直在努力教自己C++,我想在使用它的环境中获得入门级的编程工作。我从C++Primer-Plus,第六版中学习到了,我认为这是一本很棒的书,因为它涉及到机器层面发生的许多细节,进入C++的历史,以及所有帮助我成为真正的程序员的琐碎的东西。p> 我申请了一些看起来很适合我的工作,比如任天堂的入门级C++程序员。好像很多游戏公司都使用C++。p> 这是我的经验:我用指针式的方式学习C++,因为这是我的书教给它的。我很清楚,通过阅读Stack Overflow和查看web上其他地方的代码示例,C++11为该语言提供了高级功能,例如使用auto迭代数据结构的元素

学习C++;以一种基于迭代器的方式:有利于获得背景,但对于获得一份工作是否实用? 我知道这听起来像是一个基于意见的问题,但我认为它是足够具体的,因为它是一个关于现实C++实现的问题。p> 我是一名大学数学系的学生,我一直在努力教自己C++,我想在使用它的环境中获得入门级的编程工作。我从C++Primer-Plus,第六版中学习到了,我认为这是一本很棒的书,因为它涉及到机器层面发生的许多细节,进入C++的历史,以及所有帮助我成为真正的程序员的琐碎的东西。p> 我申请了一些看起来很适合我的工作,比如任天堂的入门级C++程序员。好像很多游戏公司都使用C++。p> 这是我的经验:我用指针式的方式学习C++,因为这是我的书教给它的。我很清楚,通过阅读Stack Overflow和查看web上其他地方的代码示例,C++11为该语言提供了高级功能,例如使用auto迭代数据结构的元素,c++,C++,所以我想知道,如果我在任天堂接受采访,我会做类似的事情吗 for (std::vector::iterator it1(V.begin()), it2(V.end()); it1 != it2; ++it1) 而不是 for (auto it : V) 我会被赶出面试并被嘲笑吗?使用基于指针的代码是否过时?我的大脑被训练成以C++初级读本的方式做事,也就是迭代器/指针。我知道这很好,但为了实用起见,我是否应该习惯于使用C++11呢?如果问题是这样的话,你不会因为不使用C++11而被抛弃。我知

所以我想知道,如果我在任天堂接受采访,我会做类似的事情吗

for (std::vector::iterator it1(V.begin()), it2(V.end()); it1 != it2; ++it1)
而不是

for (auto it : V)

我会被赶出面试并被嘲笑吗?使用基于指针的代码是否过时?我的大脑被训练成以C++初级读本的方式做事,也就是迭代器/指针。我知道这很好,但为了实用起见,我是否应该习惯于使用C++11呢?

如果问题是这样的话,你不会因为不使用C++11而被抛弃。我知道很少有公司(以及,C++开发人员)实际使用它。C++11成为事实上的标准需要时间

无论如何,对于一个初级职位,你不应该那么担心。与其说是一个花哨的代码,不如说是一个工作代码

我应该习惯做C++11吗

你当然应该!这是实际的标准

尽管要在实践中工作(特别是在遗留或嵌入式环境中),您应该知道如何为不支持实际标准的过时工具链构建和使用变通方法

<>你说,你的问题不是基于意见的,答案是由C++中的当前情况引导的。 我想没有人会嘲笑你。但当你给出两个答案时,你可能会得到额外的分数

老实说:
我判断关于代码的面试答案的第一件事是:
它是否按预期回答了问题,并且在语法和语义上是否都正确。
其他要点包括:
* C++标准库(一般)的知识 *创造力和抽象出情境和模式的能力


您没有显示任何基于指针的代码。在面试中引用这样一个基于迭代器的循环对你没有多大好处。除此之外,对你正在使用的这本书进行一次搜索,寻找你的意见。我只听说过这件事的坏处。但我个人并没有证实这一点。任天堂是一个很坏的例子,因为他们仍然在使用代码战士,所以我怀疑他们是否支持C++03,更不用说11;)然而,他们的代码样本是相当普遍的C语言。代码质量超越了语言或其版本。有一些漂亮的代码示例使用K&RC,就像有一些非常糟糕的代码示例使用C++11一样。表现出您了解并能够使用C++11特性是一个优势,但是如果您的面试官/评论员是最不称职的,那么他将关注的是代码质量,而这正是您应该关注的。这是一个良好的开端。良好的STL算法知识和使用也很关键。您可能会得到一些评论,认为
std::vector::iterator
缺少模板参数,而
for(auto-it:V)
复制每个元素。