这看起来似乎是个微不足道的问题,但最近却让我很烦恼。为什么有些程序员会将“C ++ / STL”称为不同的语言? STL是C ++标准库的一部分 - 因此是语言的一部分,“C ++”。它不是一个单独的组件,它不是单独存在于C ++的范围内。然而,有些人一直表现得像是一种完全不同的语言。为什么呢?
答案 0 :(得分:9)
有可能成为一名称职且经验丰富的C ++程序员,从不使用STL。您可能正在使用Boost或ACE,或者是MFC Windows程序员已有10年了。
如果你想要有经验的人使用STL,那么要求知道C ++的人并不能保证你会得到一个。
另外在我看来,编写严重依赖于STL的代码与编写MFC代码感觉非常不同。它们可能也是不同的语言。它们肯定不会特别相似。
答案 1 :(得分:8)
理解C ++不需要理解STL。当你需要ADT时,这很有用,但是你可以在不需要它的情况下完成整个C ++职业生涯(可能已经离开?)。
答案 2 :(得分:7)
以上答案非常好;我只会在更广泛的背景下添加内容。
开发人员可能会参考language / api | library,例如C / Win32,Java / Struts,Java / Spring,C#/。net MVC,因为本质上有两个知识库 - 有关语言的知识以及如何使用该特定库,API或框架的知识。像Win32这样的东西非常庞大,就像我正在学习的Django。 Django本身以一种非常特殊的方式工作,知道这就是我正在学习的东西,而不是Python。
C ++ / MFC或C ++ / Boost或C ++ / STL也是如此。语言是C ++ - 您使用的API /库是MFC,Boost或STL。
答案 3 :(得分:6)
可能是因为STL在C ++游戏中来得有点晚了,很多人都编写了不使用任何STL的代码。例如,用MFC思考早期的win32编程。
答案 4 :(得分:5)
猜测:
首次发布C ++时,STL不存在。它后来作为一个可选的添加产生,然后被纳入标准。
答案 5 :(得分:-1)
在撰写简历时,人们会经常将C / C ++列为一种语言,这在很多情况下意味着他们也不知道。
有时候简历会将“Visual C ++”列为一种语言,试图表明他们不知道语言是什么。
这与“C ++和PHP的精通”语句一起,在my firm进入回收站。不是因为他们一定是坏程序员 - 而是因为面试时间浪费不值得。