📅  最后修改于: 2023-12-03 15:21:32.230000             🧑  作者: Mango
在 C++ 中,STL 库提供了一个名为 pair
的模板类,表示一对值。每个 pair
对象包含两个值,这些值可以是相同类型或不同类型。pair
通常用于将两个值一起传递或返回。
Java 中没有类似于 pair
的内置类,但可以使用 Map.Entry
或自定义类实现类似的功能。
创建 pair
对象可以使用以下语法:
pair<type1, type2> p(value1, value2);
其中:
type1
和 type2
表示 pair
对象中的两个值的类型value1
和 value2
是初始化这两个值的初始值。例如,以下示例将创建一个 pair
对象,其中第一个值为 int
类型 1,第二个值为 string
类型 "one"
:
#include <iostream>
#include <utility>
using namespace std;
int main() {
pair<int, string> p(1, "one");
cout << p.first << " " << p.second << endl;
return 0;
}
输出结果为:
1 one
pair
对象的第一个值存储在其 first
成员中,第二个值存储在 second
成员中。以下示例演示了如何使用这些成员访问 pair
对象的值:
#include <iostream>
#include <utility>
using namespace std;
int main() {
pair<int, string> p(1, "one");
cout << p.first << " " << p.second << endl;
p.first = 2;
p.second = "two";
cout << p.first << " " << p.second << endl;
return 0;
}
输出结果为:
1 one
2 two
我们可以将 pair
对象作为函数的参数传递,以便在函数中使用该对象的值。以下示例演示了如何使用 pair
对象作为函数参数:
#include <iostream>
#include <utility>
using namespace std;
void print(pair<int, string> p) {
cout << p.first << " " << p.second << endl;
}
int main() {
pair<int, string> p(1, "one");
print(p);
return 0;
}
输出结果为:
1 one
我们可以将 pair
对象作为函数的返回值,以便将多个值作为单个值返回。以下示例演示了如何使用 pair
对象作为函数返回值:
#include <iostream>
#include <utility>
using namespace std;
pair<int, string> get_values() {
int value1 = 1;
string value2 = "one";
return make_pair(value1, value2);
}
int main() {
pair<int, string> p = get_values();
cout << p.first << " " << p.second << endl;
return 0;
}
输出结果为:
1 one
我们可以自定义一个 Pair
类,类似于 C++ 中的 pair
,以表示一对值。以下示例演示了如何创建一个 Pair
类:
public class Pair<K, V> {
private final K key;
private final V value;
public Pair(K key, V value) {
this.key = key;
this.value = value;
}
public K getKey() {
return key;
}
public V getValue() {
return value;
}
}
在上面的示例中,Pair
类使用了泛型,可以表示一对任意类型的值。类的成员变量 key
和 value
分别表示一对值的两个元素,通过 getKey()
和 getValue()
方法可以访问这些元素。
我们可以使用自定义的 Pair
类来表示一对值,并将其作为函数参数传递或返回值返回。以下示例演示了如何使用 Pair
类:
public class Main {
public static void main(String[] args) {
Pair<Integer, String> p1 = new Pair<>(1, "one");
System.out.println(p1.getKey() + " " + p1.getValue());
Pair<Integer, String> p2 = getValues();
System.out.println(p2.getKey() + " " + p2.getValue());
}
public static Pair<Integer, String> getValues() {
int value1 = 1;
String value2 = "one";
return new Pair<>(value1, value2);
}
}
在上面的示例中,我们首先创建一个 Pair
对象 p1
,其中第一个值为 int
类型 1,第二个值为 String
类型 "one"
。然后,我们使用 getValues()
方法返回一个 Pair
对象 p2
,该对象具有相同的值。打印结果与 C++ 示例相同。
无论是 C++ 中的 pair
还是 Java 中自定义的 Pair
类,都是表示一对值的有效工具。可以使用这些类将多个值组合在一起,以便在代码中传递或返回。