c++ 多对pair
时间: 2023-12-30 21:05:56 浏览: 30
回答: 在C++中,可以使用std::pair来表示多对pair。可以通过std::tie函数来接收多对pair的返回值。例如,可以定义一个函数返回多对pair对象,然后使用std::tie来接收返回值中的各个元素。比如:
```cpp
std::pair<std::string, int> getPerson() {
return std::make_pair("Sven", 25);
}
int main() {
std::string name1, name2;
int age1, age2;
std::tie(name1, age1) = getPerson();
std::tie(name2, age2) = getPerson();
std::cout << "Person 1: name = " << name1 << ", age = " << age1 << std::endl;
std::cout << "Person 2: name = " << name2 << ", age = " << age2 << std::endl;
return 0;
}
```
这样就可以同时接收多对pair的返回值,并分别赋值给不同的变量。[1]
另外,还可以使用std::make_pair来创建新的pair对象。可以将不同类型的变量组合成一个pair对象。例如:
```cpp
std::pair<int, double> p1;
p1 = std::make_pair(1, 1.2);
std::cout << p1.first << " " << p1.second << std::endl; // 输出: 1 1.2
int a = 8;
std::string m = "James";
std::pair<int, std::string> newone;
newone = std::make_pair(a, m);
std::cout << newone.first << " " << newone.second << std::endl; // 输出: 8 James
```
这样就可以使用make_pair创建新的pair对象,并将不同类型的变量赋值给pair的元素。[2]
此外,还可以使用拷贝构造函数或赋值运算符来进行pair对象之间的赋值。例如:
```cpp
std::pair<int, double> p1(1, 1.2);
std::pair<int, double> p2 = p1; // 使用拷贝构造函数初始化对象
std::pair<int, double> p3;
p3 = p1; // 使用赋值运算符进行赋值
```
这样就可以将一个pair对象的值赋给另一个pair对象。[3]