首页 > 文章列表 > C++ 函数库和标准模板库的区别是什么?

C++ 函数库和标准模板库的区别是什么?

标准库 c++
137 2025-04-03

C++ 函数库和 STL 的主要区别在于:函数库包含预定义函数,执行特定任务;STL 提供泛型容器和算法。函数库由用户创建或来自第三方库,而 STL 是 C++ 标准库的一部分。函数库需要单独包含,而 STL 不需要包含。

C++ 函数库和标准模板库的区别是什么?

C++ 函数库与标准模板库 (STL) 的区别

在 C++ 编程中,函数库和标准模板库 (STL) 都是重要的工具,但它们在功能和使用方式上存在一些关键区别。

函数库

  • 集合了预定义函数,这些函数执行特定任务。
  • 由用户创建或来自第三方库。
  • 通常以 .h.lib 文件分发。
  • 需要单独包含在程序中。
  • 例子:数学函数 (e.g. sin(), cos())、字符串函数 (e.g. strcmp(), strlen())

标准模板库 (STL)

  • 提供一组泛型容器和算法。
  • 由 C++ 标准库的一部分。
  • 通常以 <vector>, <list>, <map> 等头文件分发。
  • 在使用前不需要包含。
  • 例子:容器 (e.g. vector, list)、算法 (e.g. sort(), find())

主要区别

特性函数库STL
功能预定义函数执行特定任务泛型容器和算法
来源用户创建或第三方C++ 标准库
包含方式单独包含不需要包含
泛型性高度泛型
应用执行特定任务存储和处理数据

实战案例

使用函数库计算三角形的面积:

#include <cmath> // 引入数学函数库

double area_triangle(double base, double height) {
  return 0.5 * base * height;
}

使用 STL 存储和排序学生成绩:

#include <vector>
#include <algorithm> // 引入算法库

int main() {
  // 创建一个存储学生成绩的 vector
  vector<int> grades = {90, 85, 75, 95};

  // 使用 sort() 算法对成绩进行排序
  sort(grades.begin(), grades.end());

  // 打印排序后的成绩
  for (int grade : grades) {
    cout << grade << " ";
  }
  cout << endl;
  return 0;
}