1)STL 是 C 的一部分,因此不用额外安装什么,它被内建在你的编译器之内。
2)STL 的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但是这种分离确实使得 STL 变得非常通用。 例如,在 STL 的 vector 容器中,可以放入元素、基础数据类型变量、元素的地址;STL 的 sort() 函数可以用来操作 vector,list 等容器。
3) 程序员可以不用思考 STL 具体的实现过程,只要能够熟练使用 STL 就 OK 了。这样他们就可以把精力放在程序开发的别的方面。
4) STL 具有高可重用性,高性能,高移植性,跨平台的优点。
- 高可重用性:STL中几乎所有的代码都采用了模板类和模版函数的方式实现,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。关于模板的知识,已经给大家介绍了。
- 高性能:如map可以高效地从十万条记录里面查找出指定的记录,因为map是采用红黑树的变体实现的。(红黑树是平横二叉树的一种)
- 高移植性:如在项目A上用STL编写的模块,可以直接移植到项目 B 上。
- 跨平台:如用 windows 的 Visual Studio 编写的代码可以在 Mac OS 的 XCode 上直接编译。
5) 程序员可以不用思考 STL 具体的实现过程,只要能够熟练使用 STL 就 OK 了。这样他们就可以把精力放在程序开发的别的方面。 6)了解到 STL 的这些好处,我们知道 STL 无疑是最值得 C 程序员骄傲的一部分。每一个 C++ 程序员都应该好好学习 STL。只有能够熟练使用 STL 的程序员,才是好的 C 程序员。
7)总之:招聘工作中,经常遇到 C 程序员对 STL 不是非常了解。大多是有一个大致的映像,而对于在什么情况下应该使用哪个容器和算法都感到比较茫然。STL 是 C 程序员的一项不可或缺的基本技能,掌握它对提升 C 编程大有裨益。