I.9 使用STL
标准模板库(请参见第16章和附录G)为许多编程(www.cppentry.com)需要提供了现成的解决方案,应使用它。例如,与其声明一个double或string对象数组,不如创建vector<double>对象或vector<string>对象。这样做的好处与使用string对象(而不是C风格字符串)相似。赋值运算符已被定义,因此可以使用赋值运算符将一个vector对象赋给另一个vector对象。可以按引用传递vector对象,接收这种对象的函数可以使用size( )方法来确定vector对象中元素数目。内置的内存管理功能使得当使用pushback( )方法在vector对象中添加元素时,其大小将自动调整。当然,还可以根据实际需要来使用其他有用的类方法和通用算法。在C++(www.cppentry.com)11中,如果长度固定的数组是更好的解决方案,可使用array<double>或array<string>。
如果需要链表、双端队列(或队列)、栈、常规队列、集合或映射,应使用STL,它提供了有用的容器模板。算法库使得可以将矢量的内容轻松地复制到链表中,或将集合的内容同矢量进行比较。这种设计使得STL成为一个工具箱,它提供了基本部件,可以根据自己的需要进行装配。
在设计内容广泛的算法库时,效率是一个主要的设计目标,因此只需要完成少量的编程(www.cppentry.com)工作,便可以得到最好的结果。另外,实现算法时使用了迭代器的概念,这意味着这些算法不仅可用于STL容器。具体地说,它们也可用于传统数组。