📅  最后修改于: 2023-12-03 15:13:54.986000             🧑  作者: Mango
C++ 标准库 和 STL(标准模板库)作为C++ 的两个重要组成部分,他们都提供了实现通用数据结构和算法的一系列类、函数和容器。但是,两者之间是有一些区别的,下面是它们之间的一些不同点:
C++ 标准库是由C++ 标准委员会定义的。它包含了一些非常基础的类和函数,包括 std命名空间 中的容器和算法,如vector、list、map、迭代器、算法等等。相比 STL,C++ 标准库更注重实用性和可靠性,支持跨平台、可移植性强。
STL是一个相对独立的模块,分为 容器、算法、迭代器 三个组成部分,其目的是为了向C++语言添加一些通用的数据结构,算法和函数模板。 它也是由C++ 标准委员会定义的部分,但是 STL 更加注重基于模板思想的泛型编程,可以更灵活地支持不同的数据类型。
总的来说,两者都是C++必备的组件,它们都有着各自的优点。开发者应该根据自己的需求选择适用的标准库或STL的组件。
下面是两者的一些区别:
| | C++ 标准库 | STL | | --- | --- | --- | | 包含的组件 | 容器、迭代器、算法等 | 只有容器、迭代器、算法 | | 性质 | 实用性、可靠性 | 泛型、可扩展性 | | 兼容性 | 支持C++98、C++11等常用标准 | 建议使用C++11及以上标准 | | 适用场景 | 适用于日常开发、开发大型应用、 学习C++图书等 | 适用于数据类型和算法更加泛化和简化的应用和开发中 |
C++ 标准库和STL都是强大的工具,可以帮助C++开发者更加高效地开发出稳定可靠的应用。我们应该在实际开发中根据需要选择适合的组件,不要一味地追求模板编程的泛化和简化,也不要过分偏重实用性,而应该在实践的基础上掌握二者的优缺点。