Computer >> Máy Tính >  >> Lập trình >> C ++

Tập hợp các cặp trong C ++

Đặt trong C ++ là một vùng chứa liên kết và chứa các phần tử duy nhất. Tất cả các yếu tố sau khi được thêm vào một cụ thể không thể được sửa đổi. Người ta chỉ có thể xóa và thêm các phần tử để thay đổi chúng.

Cặp được định nghĩa trong tiêu đề và được sử dụng để ghép hai giá trị cặp với nhau. Cặp có thể có các giá trị khác nhau hoặc cùng loại. Lớp có các hàm thành viên đầu tiên () và thứ hai () để truy cập riêng lẻ các giá trị trong một cặp.

Thứ tự của cặp phần tử là cố định (thứ nhất, thứ hai). Chúng ta có thể sử dụng cặp để kết hợp hai giá trị không đồng nhất của các loại khác nhau.

Để truy cập bất kỳ phần tử nào, chúng tôi sử dụng variable_name.first cho phần tử đầu tiên và sử dụng variable_name.second cho phần tử thứ hai của cặp.

Tập hợp các cặp trong C ++

  • Không cho phép các cặp trùng lặp trong một tập hợp các cặp.
  • Các phần tử của một tập hợp như vậy, tức là các cặp được sắp xếp theo khóa là phần tử đầu tiên của mỗi cặp có trong tập hợp.
  • Chúng tôi có thể tìm kiếm một cặp cụ thể, thêm cặp, xóa cặp và có thể nhận được số lượng cặp hiện có.
  • Cú pháp là -
    set< pair<datatype1, datatype2> > set_name;
set < pair <int, int> > set1;

Ở đây, set1 là một đối tượng của kiểu tập hợp bao gồm các cặp hai kiểu số nguyên.

Ví dụ

#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();
}

Đầu ra

(1, 7) (1, 9) (3, 1) (3, 7) (3, 9) (9, 7)