std::pair 是 C++ 中用于组合两个值的模板类,支持多种创建方式(构造函数、make_pair、花括号初始化),通过 first 和 second 访问成员,常用于返回多值、插入 map 及结构化绑定,推荐在语义明确时使用 struct 提升可读性。

在C++中,std::pr 是一个模板类,定义在 utility 头文件中,用于将两个值组合成一个单元。这两个值可以是相同或不同的类型。它常用于函数返回多个值、插入到容器(如 map)等场景。
创建 std::pair 的方法
有多种方式可以创建 std::pair:
- 使用构造函数:
std::pair<int, std::string> p(1, “hello”); - 使用 make_pair 函数(推荐,可自动推导类型):
auto p = std::make_pair(1, “hello”);
编译器会自动推断出类型为 std::pair<int, const char*> - 使用花括号初始化(C++11 起):
std::pair p{1, “hello”}; // C++17 起支持类模板参数推导
或显式指定:std::pair<int, std::string> p{“hi”, 2};
访问 std::pair 的成员
std::pair 有两个公开成员:first 和 second,分别表示第一个和第二个元素。
阿里妈妈营销创意中心
0 auto p = std::make_pair(10, “world”);
std::cout << p.first << “, ” << p.second << std::endl; // 输出:10, world
可以直接修改成员值:
立即学习“”;
p.first = 20;
p.second = “changed”;
std::pair 的常见用途
- 作为函数返回值:
当需要从函数返回两个相关值时,非常方便。
std::pair<bool, int> findValue(const std::vector<int>& vec, int target) {
for (size_t i = 0; i < vec.size(); ++i) {
if (vec[i] == target) {
return {true, static_cast<int>(i)};
}
}
return {false, -1};
} - 插入 map 元素:
std::map<int, std::string> m;
m.insert(std::make_pair(1, “le”));
m.insert({2, “banana”}); // 更简洁 - 结构化绑定(C++17):
可以直接解包 pair 的值:
auto [success, index] = findValue(data, 5);
if (success) { std::cout << “Found at ” << index; }
基本上就这些。std::pair 使用简单,适合处理成对数据,但若字段有明确语义,建议用 struct 提高可读性。不复杂但容易忽略细节,比如类型自动推导和 const 限制。
以上就是++中的std::pr怎么创建和使用_c++ std::pair创建使用方法的详细内容,更多请关注php中文网其它相关文章!
微信扫一扫打赏
支付宝扫一扫打赏
