1. **时长类型**：
   - `std::chrono::duration`：表示时间段。例如，`std::chrono::duration<int>` 表示基于整数的时间段，而 `std::chrono::duration<double>` 表示基于浮点数的时间段。
   - `std::chrono::hours`、`std::chrono::minutes`、`std::chrono::seconds`、`std::chrono::milliseconds`、`std::chrono::microseconds`、`std::chrono::nanoseconds`：具有不同单位的特定时长类型。

2. **时间点类型**：
   - `std::chrono::time_point`：表示时间点。它在时钟类型和时长类型上进行模板化。
   - `std::chrono::system_clock`、`std::chrono::steady_clock`、`std::chrono::high_resolution_clock`：`<chrono>` 提供的时钟类型。

3. **时钟函数**：
   - `std::chrono::duration_cast`：将一个时长转换为具有不同刻度的另一个时长。
   - `std::chrono::time_point_cast`：将一个时间点转换为具有不同时钟的另一个时间点。
   - `std::chrono::system_clock::now()`：根据系统时钟获取当前时间。
   - `std::chrono::steady_clock::now()`：根据稳定时钟（单调时钟）获取当前时间。
   - `std::chrono::high_resolution_clock::now()`：如果可用，根据高分辨率时钟获取当前时间。

4. **实用函数**：
   - `std::chrono::duration_values`：提供时长类型的最小值和最大值。
   - `std::chrono::time_point::min()`、`std::chrono::time_point::max()`：返回时间点类型的最小值和最大值。

5. **算术运算**：
   - 时长类型支持算术运算，如加法（`operator+`）、减法（`operator-`）、乘法（`operator*`）、除法（`operator/`）以及比较运算（`operator==`、`operator!=`、`operator<` 等）。

6. **时长字面值**：
   - 可以使用字面值后缀，如 `h`、`min`、`s`、`ms`、`us`、`ns` 来创建时长字面值。例如，`5s` 表示 5 秒。

这里是一个简单的示例，演示了这些功能：

```cpp
#include <iostream>
#include <chrono>

int main() {
    using namespace std::chrono;

    // 定义时长
    auto 秒 = seconds(10);
    auto 毫秒 = 5ms;

    // 添加时长
    auto 总时长 = 秒 + 毫秒;

    // 获取当前时间点
    auto 开始 = steady_clock::now();

    // 等待 2 秒
    std::this_thread::sleep_for(2s);

    // 计算经过的时间
    auto 结束 = steady_clock::now();
    auto 经过时间 = duration_cast<seconds>(结束 - 开始);

    std::cout << "总时长：" << 总时长.count() << " 毫秒\n";
    std::cout << "经过时间：" << 经过时间.count() << " 秒\n";

    return 0;
}
```

