C++ 标准库概述
C++ 标准库(Standard Library)是一组核心功能模块的集合,包含容器、算法、迭代器、字符串处理、输入/输出等功能。它基于模板实现,与 C++ 语言紧密集成,是开发高效、可移植程序的基础工具。
主要组成部分
标准模板库(STL)
STL 提供以下核心组件:
- 容器 :如
vector、list、map、unordered_set,用于数据存储。 - 算法 :如
sort、find、transform,作用于容器或迭代器范围。 - 迭代器 :如
begin()、end(),提供对容器的统一访问接口。
字符串处理
std::string 和 std::wstring 类支持动态字符串操作,包括拼接、查找、替换等。
输入/输出(I/O)
<iostream>:提供cin、cout、cerr等标准流。<fstream>:支持文件读写(ifstream、ofstream)。
智能指针
std::unique_ptr、std::shared_ptr 等用于自动化资源管理,避免内存泄漏。
多线程支持(C++11 起)
<thread>、<mutex>、<atomic> 等库支持并发编程。
常用代码示例
容器与算法
cpp
#include <vector>
#include <algorithm>
#include <iostream>
int main() {
std::vector<int> nums = {3, 1, 4, 1, 5};
std::sort(nums.begin(), nums.end()); // 排序
for (int num : nums) {
std::cout << num << " ";
}
return 0;
}
字符串操作
cpp
#include <string>
#include <iostream>
int main() {
std::string str = "Hello";
str += " C++";
std::cout << str.substr(0, 5); // 输出 "Hello"
return 0;
}
文件读写
cpp
#include <fstream>
#include <string>
int main() {
std::ofstream file("example.txt");
file << "Writing to a file.\n";
file.close();
return 0;
}
版本演进
- C++98/03:初始标准,包含 STL 基础功能。
- C++11:引入智能指针、多线程库、移动语义等。
- C++17 :新增
std::optional、std::filesystem等。 - C++20:加入范围(Ranges)、协程(Coroutines)等特性。
学习资源
- 官方文档 :cppreference.com
- 书籍:《The C++ Standard Library》(Nicolai M. Josuttis)
- 实践:通过项目或在线编程平台(如 LeetCode)练习标准库的使用。