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)

更新於: 2020-07-28

7K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告