以迭代器为基础学习C ++:有利于获得背景,但是获得工作是否实用?

时间:2014-04-26 17:19:35

标签: c++

我知道这听起来像是一个基于意见的问题,但我认为它具有足够的特殊性,因为它是关于真实C ++实现的问题。

我是大学的数学学生,我一直在努力自学C ++,我希望在使用它的环境中获得入门级的编程工作。我一直在学习 C ++ Primer Plus,第六版这本书,我认为这本书很棒,因为它详细介绍了机器级别的内容。并进入C的历史和所有那些帮助我成为一个真正的"程序员。

我已经申请了一些看起来非常适合我的工作,比如任天堂的入门级C ++程序员。似乎很多游戏公司都在使用C ++。

事情就是这样:我已经以指针为基础的方式学习了C ++,因为这是我的书教导它的方式。我非常清楚,通过阅读Stack Overflow并查看代码示例网络上的其他地方,C ++ 11已经为语言提供了高级功能,例如使用auto来迭代元素数据结构。

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

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

而不是

for (auto it : V)
我会退出面试并嘲笑吗?是否使用基于指针的代码已过时?我的大脑经过训练,以C++ Primer的方式做事,即迭代器/指针。我知道这很好,但为了实用起见,我应该习惯做C ++ 11的东西吗?

2 个答案:

答案 0 :(得分:4)

  

我应该习惯做C ++ 11的东西吗?

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

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

那就是说,你的问题不是基于意见的,答案几乎是由C ++领域的现状引导的。
我认为没有人会嘲笑你。但是当你提出两个答案时,你可能会获得额外的分数。

<子> 的坦白:
我正在判断一个关于代码的面试答案的第一件事是:
它是否按预期回答了问题,并且在语法和语义上都是正确的 其他要点是:
*了解C ++标准库(一般)
*创造力和抽象情境和模式的能力

答案 1 :(得分:2)

如果不是这样,那么你不会因为不使用C ++ 11而被抛弃。我知道很少有公司(以及C ++开发人员)实际使用它。在C ++ 11成为de 事实标准之前需要一段时间。

无论如何,对于初级职位,你不应该担心那么多。更好地关注工作代码而非花哨代码。