gpt4 book ai didi

c++ - 在面试中,应该期望 STL 专家回答什么问题

转载 作者:可可西里 更新时间:2023-11-01 16:29:29 26 4
gpt4 key购买 nike

我最近在看一份招聘启事,其中一项要求是对 STL 的了解达到 9/10。

当我评判自己的技能时,对我来说,10 分是指撰写有关该主题的高级书籍的人,例如 Jon Skeet (C#)、John Resig (JavaScript) 或 Martin Odersky (Scala)。

所以,9/10 基本上是 10,所以我不确定在那个级别会发生什么。

可以在以下位置找到一些问题的示例:http://discuss.joelonsoftware.com/default.asp?joel.3.414500.47

显然需要一些编码,但应该记住所有内容,因为 STL 中有很多内容。

在某些情况下,Boost 库扩展了 STL,所以应该期望我也会使用 Boost,因为有时我可能会混淆哪个函数来自两个库中的哪个。

我想知道我是否可以回答 STL 专家期望的问题,尽管奇怪的是 C++ 专家不是必需的。

更新

在思考我的问题的答案后,他们似乎正在寻找能够看到 STL 的限制并扩展库的人,而我还没有做到这一点。我习惯于在 STL 和 Boost 给我的范围内思考并保持在界限之内。我可能需要开始研究这是否过于局限,看看我是否可以跳出框框。我希望他们不像谷歌那样意味着 9。 :)

最佳答案

有趣——我不认为自己是 STL 的 9/10(我曾经是,但我现在有点生疏了),我完全同意@joshperry 的重要术语区分(我经常曾公开谴责滥用 STL 的意思是“C++ 标准库中最初受 SGI 的 STL 启发的部分”!-),但我认为他的示例代码不及“最佳 STL-ish”。我的意思是,对于给定的任务“将所有整数放入一个 vector 以进行标准输出。”,为什么有人曾经编码,正如@joshperry 所建议的,

for(std::vector<int>::iterator it = intVect.begin(); it != intVect.end(); ++i)
std::cout << *it;

而不是显而易见的:

std::copy(intVect.begin(), intVect.end(), std::ostream_iterator<int>(std::cout));

之类的?!对我来说,这有点表明他们不知道std::ostream_iterator——特别是如果他们应该炫耀他们的 STL 知识,为什么不呢?他们炫耀它吗?-)

在我现在的雇主,为了帮助应聘者对技术能力进行 self 评价,我们提供了一个有用的指南——“10:我发明了这项技术;9:我写了关于它的书”等等。因此,举例来说,我在 Python 中的成绩是 9/10——只有我的同事和 friend Guido 才能公平地获得 10/10。 STL 是一个有趣的案例:虽然 Stepanov 插入了设计,但我的同事 Matt Austern 进行了第一个实现并且也写了关于它的“the”书(this one)——所以我认为他会得到要求,如果不是 10,9.5。按照这个标准,如果我能花一个小时刷新(自定义分配器和特征总是很棘手,或者至少我是这么记得的!-),我可能会在 7 到 8 之间。

因此,如果您正在调查某个声称得了 9 分的人,请在真正困难的部分(例如自定义分配器和特征)上盘问他们——大概他们不会错过所有容器、算法和特殊迭代器的一个节拍,所以不要在这些问题上浪费太多面试时间(如果你要考 7 分或 7.5 分,这将是关键)。也许要求他们给出一个使用自定义特征和/或分配器的真实示例,并对实现的所有细节以及一些示例使用进行编码。

顺便说一句,如果您是需要补习高级 C++ 标准库的人,知识渊博且不生锈的 friend 告诉我,Josuttis 的 book现在比我 friend 马特的更有用(不幸的是,我从来没有深入阅读过 Josuttis,所以我不能证实或否认 - 我确实看到这本书在亚马逊上有五颗星, 令人印象深刻;-)。

关于c++ - 在面试中,应该期望 STL 专家回答什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1691759/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com