std::make_pair & std::make_tuple 的区别和联系
std::make_pair 和 std::make_tuple 都是用于创建对应类型的对象的 C++ 标准库函数模板。
它们的区别主要在于它们所处理的数据类型和返回类型。
std::make_pair:
std::make_pair 用于创建一个 std::pair 对象,std::pair 是一个包含两个值的容器。
#include <iostream> #include <utility> int main() { // 使用 std::make_pair 创建一个 std::pair 对象 auto myPair = std::make_pair(42, "hello"); // 输出 pair 的内容 std::cout << "Pair: " << myPair.first << ", " << myPair.second << std::endl; return 0; }
std::make_tuple:
std::make_tuple 用于创建一个 std::tuple 对象,std::tuple 是一个包含多个值的容器。
#include <iostream> #include <tuple> int main() { // 使用 std::make_tuple 创建一个 std::tuple 对象 auto myTuple = std::make_tuple(42, "hello", 3.14); // 通过 std::get 访问 tuple 的元素 std::cout << "Tuple: " << std::get<0>(myTuple) << ", " << std::get<1>(myTuple) << ", " << std::get<2>(myTuple) << std::endl; return 0; }
区别和联系:
-
数据数量:
std::make_pair用于创建包含两个元素的std::pair。std::make_tuple用于创建包含任意数量元素的std::tuple。
-
元素类型:
std::make_pair的元素类型可以不同。std::make_tuple的元素类型可以不同,可以是不同类型的值。
-
返回类型:
std::make_pair返回std::pair类型。std::make_tuple返回std::tuple类型。
-
元素访问:
std::pair的元素通过first和second访问。std::tuple的元素通过std::get访问。

浙公网安备 33010602011771号