Utility
在 C++ 中,有一些实用的工具类和函数,这些工具类和函数在编写高效、可读性强的代码时非常有用且大多是C++新特性
| 工具名称 | 说明 | 所属头文件 | C++版本引入 |
|---|---|---|---|
std::pair | 存储两个相关值的通用模板类。 | <utility> | C++98 |
std::make_pair | 辅助函数,用于创建 std::pair。 | <utility> | C++98 |
std::move | 将对象显式转换为右值引用,用于触发移动语义。 | <utility> | C++11 |
std::forward | 完美转发函数,用于保持值类别(左值/右值)。 | <utility> | C++11 |
std::swap | 通用交换函数,支持用户自定义类型的交换。 | <utility> | C++98 |
std::tuple | 可变长异质容器,存储多个不同类型的值。 | <tuple> | C++11 |
std::make_tuple | 辅助函数,用于创建 std::tuple。 | <tuple> | C++11 |
std::tie | 将多个左值绑定为 tuple,用于结构化绑定或比较。 | <tuple> | C++11 |
std::ignore | 与 std::tie 搭配,用于忽略某个绑定的值。 | <tuple> | C++11 |
std::optional | 表示一个可选值,可能含值也可能为空。 | <optional> | C++17 |
std::variant | 类型安全的联合体,可以在多个候选类型中存储其中之一。 | <variant> | C++17 |
std::any | 类型擦除的容器,可以存放任意类型的值,并在运行时安全提取。 | <any> | C++17 |
std::function | 通用函数包装器,可存储可调用对象(函数指针、lambda、仿函数等)。 | <functional> | C++11 |
std::bind | 绑定函数参数,生成新的可调用对象。 | <functional> | C++11 |
std::ref | 将对象包装为引用,以便在需要值语义时保持引用语义。 | <functional> | C++11 |
std::cref | 常量引用版本的 std::ref。 | <functional> | C++11 |