`<algorithm>` 是 C++ 标准库中的一个头文件,提供了大量有用的算法函数。以下是一些常用的算法: ```cpp #include <algorithm> // 1. min/max 相关 std::min(a, b); // 返回较小值 std::max(a, b); // 返回较大值 std::min({1, 2, 3, 4}); // 返回集合中最小值 std::max({1, 2, 3, 4}); // 返回集合中最大值 // 2. 查找相关 std::find(begin, end, value); // 查找元素 std::find_if(begin, end, predicate); // 条件查找 std::binary_search(begin, end, value); // 二分查找 // 3. 排序相关 std::sort(begin, end); // 排序 std::reverse(begin, end); // 反转 // 4. 复制和填充 std::copy(src_begin, src_end, dest); // 复制 std::fill(begin, end, value); // 填充 // 5. 计数和比较 std::count(begin, end, value); // 计数 std::equal(begin1, end1, begin2); // 比较 ``` 在 ByteStream 的实现中,可能会用到: ```cpp // 例如在 write 函数中限制写入长度 size_t ByteStream::write(const string &data) { // 计算可写入的字节数 size_t len = std::min(data.length(), remaining_capacity()); // ... } // 或在 read 函数中 string ByteStream::read(const size_t len) { // 计算实际可读取的字节数 size_t actual_len = std::min(len, buffer_size()); // ... } ``` 相当于 Java 中的: ```java // Java 等价功能 import java.util.Collections; // 对应一部分算法 import java.util.Arrays; // 对应另一部分算法 // 使用示例 Math.min(a, b); // 对应 std::min Collections.min(list); // 对应 std::min 的集合版本 Arrays.sort(array); // 对应 std::sort Collections.reverse(list); // 对应 std::reverse ```