C++ 中的配对集合
C++ 中的集合是一种关联容器,包含唯一元素。所有元素一旦添加到特定集合中,就不能修改。只能删除和添加元素以更改它们。
Pair 定义在 <utility> 头文件中,用于将两个值配对在一起。pair 可以具有不同或相同类型的值。该类具有成员函数 first() 和 second(),用于分别访问 pair 中的值。
pair 元素的顺序是固定的(first,second)。我们可以使用 pair 来组合两种不同类型的异构值。
要访问任何元素,我们使用 variable_name.first 访问第一个元素,并使用 variable_name.second 访问 pair 的第二个元素。
C++ 中的配对集合
- 配对集合不允许重复的 pair。
- 此类集合的元素,即 pair,根据键(每个 pair 中的第一个元素)进行排序。
- 我们可以搜索特定的 pair,添加 pair,删除 pair,并且可以获取存在的 pair 的数量。
- 语法如下:
set< pair<datatype1, datatype2> > set_name;
set < pair <int, int> > set1;
这里,set1 是 set 类型的对象,它包含两个整数类型的 pair。
示例
#include <bits/stdc++.h> using namespace std; int main(){ //pair<int, int> pairs; int arr[]={ 2, 3, 1, 6, 9, 7, 10, 2 }; int n=8; set<pair <int,int> > set1; for (int i = 0; i < n-1 ; i++) { for (int j = i + 1; j < n; j++) { if (arr[i] % 2 == 1 && arr[j] % 2 == 1) { // pairs of odd numbers pairs p1 = make_pair(arr[i], arr[j]); // putting into the set set1.insert(p1); } } } // to display the pairs for (auto const &var : set1) { cout << "(" << var.first << ", "<< var.second << ")"<< " "; } // to clear the set set1.clear(); }
输出
(1, 7) (1, 9) (3, 1) (3, 7) (3, 9) (9, 7)
广告