C++ pair使用示例
时间: 2023-12-31 10:04:07 浏览: 183
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++中的pair,可以使用标准库中的sort函数进行排序。sort函数需要传入一个范围的迭代器,并可以指定一个自定义的比较函数来确定排序的顺序。以下是一个示例代码:
```cpp
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
bool comparePairs(const pair<int, int>& p1, const pair<int, int>& p2) {
// 按照第一个元素进行升序排序,如果第一个元素相同,则按照第二个元素进行降序排序
if (p1.first == p2.first) {
return p1.second > p2.second;
}
return p1.first < p2.first;
}
int main() {
vector<pair<int, int>> pairs = {{5, 2}, {3, 1}, {4, 3}, {5, 1}, {4, 2}};
sort(pairs.begin(), pairs.end(), comparePairs);
for (const auto& pair : pairs) {
cout << "(" << pair.first << ", " << pair.second << ") ";
}
cout << endl;
return 0;
}
```
运行以上代码,输出会是 `(3, 1) (4, 3) (4, 2) (5, 2) (5, 1)`,即按照第一个元素进行升序排序,如果第一个元素相同,则按照第二个元素进行降序排序。
你也可以根据自己的需求修改comparePairs函数来实现不同的排序方式。
阅读全文