C ++中的Set是一个关联容器,包含唯一元素。一旦添加到特定元素,所有元素都无法修改。一个人只能删除和添加元素以进行更改。
对在<utility>标头下定义,用于将两个对值耦合在一起。该对可以具有不同或相同类型的值。该类具有成员函数,first()
并且second()
可以成对访问各个值。
对元素的顺序是固定的(第一,第二)。我们可以使用对来组合两个不同类型的异构值。
要访问任何元素,我们将variable_name.first用于该对的第一个元素,并将variable_name.second用于该对的第二个元素。
一组配对中不允许有重复的配对。
这样的集合中的元素(即对)将根据作为集合中每个对中第一个元素的关键字进行排序。
我们可以搜索一个特定的配对,添加配对,删除配对,并获取当前配对的数量。
语法是-
set< pair<datatype1, datatype2> > set_name;
set < pair <int, int> > set1;
在此,set1是类型为set的对象,它由两个整数类型对组成。
#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 p1 = make_pair(arr[i], arr[j]); //放入集合 set1.insert(p1); } } } //显示对 for (auto const &var : set1) { cout << "(" << var.first << ", "<< var.second << ")"<< " "; } //清除设置 set1.clear(); }
输出结果
(1, 7) (1, 9) (3, 1) (3, 7) (3, 9) (9, 7)