Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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::ignorestd::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