C++ pair使用示例
时间: 2023-12-31 16:04:07 浏览: 230
C++ 中的 pair 是一个模板类,用于存储两个不同类型的值。下面是一个简单的使用示例:
```c++
#include <iostream>
#include <utility>
using namespace std;
int main() {
pair<int, string> p1; // 定义一个 pair,第一个元素为 int,第二个元素为 string
p1.first = 1; // 给第一个元素赋值
p1.second = "Hello"; // 给第二个元素赋值
pair<char, double> p2('a', 3.14); // 定义一个 pair,并初始化为 'a' 和 3.14
cout << "p1: " << p1.first << ", " << p1.second << endl;
cout << "p2: " << p2.first << ", " << p2.second << endl;
return 0;
}
```
输出结果为:
```
p1: 1, Hello
p2: a, 3.14
```
在这个示例中,我们定义了两个不同类型的 pair,一个是 int 和 string,另一个是 char 和 double。我们可以通过 .first 和 .second 成员变量来访问 pair 中的元素,并且可以使用构造函数来初始化 pair。
相关问题
C++ pair的使用
C 中的 pair 是一个结构体,用于存储两个不同类型的值。它通常用于将两个值作为一个单元进行传递或返回。以下是一个示例:
```
#include <stdio.h>
#include <utility>
int main() {
std::pair<int, char> myPair;
myPair.first = 10;
myPair.second = 'A';
printf("First value: %d\n", myPair.first);
printf("Second value: %c\n", myPair.second);
return 0;
}
```
输出:
```
First value: 10
Second value: A
```
注意,这个示例中使用了 C++ 的 STL 中的 pair,如果你想在 C 中使用 pair,你需要自己实现它。
c++pair如何使用下标进行前后比较
在 C++ 中,`std::pair` 是一个模板类,用于存储两个不同类型的值。要使用下标进行前后比较,你需要定义一个比较函数或者使用 Lambda 表达式来实现自定义的比较规则。
下面是一个示例代码,展示了如何使用下标比较 `std::pair` 对象的第一个元素:
```cpp
#include <iostream>
#include <utility>
int main() {
std::pair<int, int> p1(1, 2);
std::pair<int, int> p2(3, 4);
auto compare = [](const std::pair<int, int>& p) {
return p.first;
};
if (compare(p1) < compare(p2)) {
std::cout << "p1 is smaller than p2" << std::endl;
} else if (compare(p1) > compare(p2)) {
std::cout << "p1 is greater than p2" << std::endl;
} else {
std::cout << "p1 is equal to p2" << std::endl;
}
return 0;
}
```
在上面的代码中,我们定义了一个 Lambda 表达式 `compare`,它接受一个 `std::pair<int, int>` 类型的参数,并返回第一个元素。然后我们通过比较 `compare(p1)` 和 `compare(p2)` 的结果来判断 `p1` 是否小于、大于或等于 `p2`。
你可以根据需要修改比较函数或者 Lambda 表达式来实现其他的比较规则,比如按第二个元素进行比较。
阅读全文