Мультимножество пар (Multiset) в C++ с примерами

Как преобразовать строку в int в C++ Программирование и разработка

Что такое Multiset?

Мультимножество представляет собой ассоциативный контейнер, который может содержать ряд элементов в определенном порядке. В отличие от набора мультимножество может содержать несколько экземпляров одного и того же элемента.

Некоторые функции, связанные с мультимножеством:

  • begin (): возвращает итератор к первому элементу мультимножества.
  • end ():возвращает итератор к теоретическому элементу, который следует за последним элементом в мультимножестве.
  • size (): возвращает количество элементов в мультимножестве.
  • max_size (): возвращает максимальное количество элементов, которое может содержать мультимножество.
  • empty (): возвращает, является ли мультимножество пустым.

Что такое Pair?

Заголовок утилиты в C ++ предоставляет нам контейнер пар. Пара состоит из двух элементов данных или объектов.

  • Первый элемент обозначается как «первый», а второй элемент — как «второй», и порядок фиксируется (первый, второй).
  • Пара используется для объединения двух значений, которые могут различаться по типу. Пара позволяет хранить два разнородных объекта как единое целое.
  • Пары можно назначать, копировать и сравнивать. Массив объектов, размещенных на карте или hash_map, по умолчанию имеет тип «пара», в котором все «первые» элементы являются уникальными ключами, связанными со своими «вторыми» объектами значений.
  • Чтобы получить доступ к элементам, мы используем имя переменной, за которым следует оператор точка, за которым следует ключевое слово first или second.

Как получить доступ к паре?

Для доступа к элементам пары используйте оператор точки (.).

Синтаксис:

auto fistElement = myPair.first;

auto fistElement = myPair.second;

Множество пар

Мультимножество пар — это мультимножество, в котором каждый элемент сам является парой. Две пары считаются равными, если равны соответствующие первый и второй элементы пары. Теперь, если есть необходимость хранить более одной копии пары вместе с другими элементами, тоже в определенном порядке, в таких случаях может пригодиться мультимножество пар.

Синтаксис:

multiset<pair<dataType1, dataType2>> myMultiset;

Here,

dataType1 and dataType2 can be similar or dismilar data types.

Пример 1: Ниже представлена ​​программа на C ++, демонстрирующая работу мультимножества пар, имеющих целочисленные значения.

// C++ program to illustrate the
// implementation of multiset of
// pairs
#include <bits/stdc++.h>
using namespace std;
 
// Function to print multiset 
// elements
void print(multiset<pair<int
           int>> &multisetOfPairs)
{  
  // Iterating over multiset of 
  // pairs elements
  for (auto cuurentPair : multisetOfPairs)
  {
    // Each element is a tuple itself
    pair<int, int> pr = cuurentPair;
 
    // Printing pair elements
    cout << "[ " << pr.first << ' ' << 
             pr.second << " ]"<< '\n';
  }
}
 
// Driver code
int main()
{
  // Declaring a multiset of tuples
  multiset<pair<int
  int>> multisetOfPairs;
 
  // Initializing a pair
  pair<int, int> pair1;
  pair1 = make_pair(1, 2);
 
  // Initializing a pair
  pair<int, int> pair2;
  pair2 = make_pair(3, 4);
 
  // Initializing another pair
  pair<int, int> pair3;
  pair3 = make_pair(5, 6);
 
  // Initializing another pair
  pair<int, int> pair4;
  pair4 = make_pair(7, 8);
 
  // Initializing another pair
  pair<int, int> pair5;
  pair5 = make_pair(9, 10);
 
  // Inserting into multiset
  multisetOfPairs.insert(pair1);
  multisetOfPairs.insert(pair2);
  multisetOfPairs.insert(pair3);
  multisetOfPairs.insert(pair4);
  multisetOfPairs.insert(pair5);
 
  // Calling print function
  print(multisetOfPairs);
 
  return 0;
}

Вывод:

[ 1 2 ]
[ 3 4 ]
[ 5 6 ]
[ 7 8 ]
[ 9 10 ]

Объяснение:

В приведенном выше выводе элементы упорядочены попарно в мультимножестве пар.

Пример 2: Ниже представлена ​​программа на C ++, демонстрирующая работу мультимножества пар, имеющих строковые значения.

// C++ program to illustrate the
// implementation of multiset of
// pairs
#include <bits/stdc++.h>
using namespace std;
 
// Function to print multiset elements
void print(multiset<pair<string, 
           string>> &multisetOfPairs)
{
  // Iterating over multiset of pairs elements
  for (auto currentPair : multisetOfPairs)
  {
    // Each element is a pair itself
    pair<string, string> pr = currentPair;
 
    // Printing pair elements
    cout << "[ " << pr.first << ' ' << 
             pr.second << " ]"<< '\n';
  }
}
 
// Driver code
int main()
{
  // Declaring a multiset of pairs
  multiset<pair<string, 
  string>> multisetOfPairs;
 
  // Initializing a pair
  pair<string, string> pair1;
  pair1 = make_pair("GeeksforGeeks"
                    "GFG");
 
  // Initializing a pair
  pair<string, string> pair2;
  pair2 = make_pair("Swift"
                    "Python");
 
  // Initializing another pair
  pair<string, string> pair3;
  pair3 = make_pair("C++", "C");
 
  // Initializing another pair
  pair<string, string> pair4;
  pair4 = make_pair("PHP"
                    "HTML");
 
  // Initializing another pair
  pair<string, string> pair5;
  pair5 = make_pair("Javascript"
                    "CSS");
 
  // Inserting into multiset
  multisetOfPairs.insert(pair1);
  multisetOfPairs.insert(pair2);
  multisetOfPairs.insert(pair3);
  multisetOfPairs.insert(pair4);
  multisetOfPairs.insert(pair5);
 
  // Calling print function
  print(multisetOfPairs);
 
  return 0;
}

Вывод:

[ C++ C ]
[ GeeksforGeeks GFG ]
[ Javascript CSS ]
[ PHP HTML ]
[ Swift Python ]

Объяснение:

В приведенном выше выводе элементы упорядочены попарно в мультимножестве пар.

Читайте также:  Использование статической функции-члена в C++
Оцените статью
bestprogrammer.ru
Добавить комментарий