我最近看了一份工作,其中一个要求是一个人对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++专家不是必需的.
UPDATE
在回答了我的问题的答案之后,他们可能正在寻找的是能够看到STL限制并扩展库的人,这是我没有做过的事情.我习惯于在STL和Boost给我的范围内思考并保持在线内.我可能需要开始考虑这是否过于局限,看看我是否可以跳出盒子.我希望他们不像谷歌那样意味着9.:)
Ale*_*lli 12
有趣 - 我不认为自己是STL的9/10(我曾经是,但现在我有点生疏了),我完全同意@joshperry的重要术语区别(我经常记录在案)正如指责滥用STL意味着"最初受SGI STL启发的C++标准库部分"! - ),但我认为他的示例代码不是"最佳STL-ish".我的意思是,对于给定的任务"把所有的整数中的向量到标准输出.",为什么会有人曾经代码,@joshperry表明,
for(std::vector<int>::iterator it = intVect.begin(); it != intVect.end(); ++i)
std::cout << *it;
Run Code Online (Sandbox Code Playgroud)
而不是显而易见的:
std::copy(intVect.begin(), intVect.end(), std::ostream_iterator<int>(std::cout));
Run Code Online (Sandbox Code Playgroud)
或类似的?!对我来说,那会有种建议他们不知道有关std::ostream_iterator-特别是如果他们应该炫耀自己的STL的知识,他们为什么不炫耀- ?)
在我现在的雇主,为了帮助候选人自我评价技术的能力,我们提供了一个有用的指导 - "10:我发明了那项技术; 9:我写了关于它的书"等等.所以,例如,我在Python中是9/10 - 只有我的同事和朋友Guido可以在那里公平地声称一个10/10.STL是一个有趣的案例:当Stepanov推动设计时,我的同事Matt Austern做了第一次实施,并写了"关于它的书"(这一个) - 所以我认为他可以声称,如果不是10 ,9.5.根据这个标准,如果我可以花一个小时刷新(自定义分配器和特性总是很棘手,或者至少我记得它们的方式!),我可以介于7到8之间.
所以,如果你正在探测一个声称9的人,将它们烧成真正的硬件,如自定义分配器和特性 - 可能他们不会错过所有容器,算法和特殊迭代器的节拍,所以不要浪费了很多面试时间(如果你正在探索7或7.5,这将是关键).也许让他们给出一个真实的例子,他们使用自定义特征和/或分配器,并编写实现的所有细节以及一些示例用法.
顺便说一句,如果你是一个需要到补习班上C++"在先进水平的标准库,我的知识和非生锈的朋友告诉记者,约祖蒂斯" 的书现在甚至比我的朋友马特(不幸的是,我有更多的有用从来没有深入阅读约祖蒂斯,所以我无法证实或否认-我看的书有亚马逊,这五颗星是令人印象深刻的;-).
| 归档时间: |
|
| 查看次数: |
27212 次 |
| 最近记录: |