📜  C++ 中的多组对与示例

📅  最后修改于: 2022-05-13 01:54:56.555000             🧑  作者: Mango

C++ 中的多组对与示例

什么是多集?

多重集是一个关联容器,可以按特定顺序保存多个元素。与集合不同,多重集合可以包含同一元素的多次出现。

与多重集相关的一些功能:

  • begin() 返回一个迭代器,指向多重集中的第一个元素。
  • end():返回一个迭代器,指向多重集中最后一个元素之后的理论元素。
  • size() 返回多集中元素的数量。
  • max_size() 返回多重集可以容纳的最大元素数。
  • empty() 返回多重集是否为空。

什么是配对?

C++ 中的实用程序标头为我们提供了配对容器。一对由两个数据元素或对象组成。

  • 第一个元素被称为“第一”,第二个元素被称为“第二”,并且顺序是固定的(第一,第二)。
  • Pair 用于将类型可能不同的两个值组合在一起。 Pair 提供了一种将两个异构对象存储为一个单元的方法。
  • 可以分配、复制和比较对。在 map 或 hash_map 中分配的对象数组默认为“pair”类型,其中所有“first”元素都是与其“second”值对象关联的唯一键。
  • 要访问元素,我们使用变量名后跟点运算符,然后是关键字 first 或 second。

如何访问一对?

要访问一对元素,请使用点 (.)运算符。

句法:

auto fistElement = myPair.first;
auto fistElement = myPair.second;

多组对

对的多重集是一个多重集,其中每个元素本身就是一对。如果对的对应的第一个和第二个元素相等,则认为两个对是相等的。现在,如果需要以特定顺序存储一对以上的副本以及其他元素,在这种情况下,多组对就派上用场了。

句法:

示例 1:下面是 C++ 程序,用于演示具有整数值的多组对的工作。

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


C++
// C++ program to illustrate the
// implementation of multiset of
// pairs
#include 
using namespace std;
  
// Function to print multiset elements
void print(multiset> &multisetOfPairs)
{
  // Iterating over multiset of pairs elements
  for (auto currentPair : multisetOfPairs)
  {
    // Each element is a pair itself
    pair pr = currentPair;
  
    // Printing pair elements
    cout << "[ " << pr.first << ' ' << 
             pr.second << " ]"<< '\n';
  }
}
  
// Driver code
int main()
{
  // Declaring a multiset of pairs
  multiset> multisetOfPairs;
  
  // Initializing a pair
  pair pair1;
  pair1 = make_pair("GeeksforGeeks", 
                    "GFG");
  
  // Initializing a pair
  pair pair2;
  pair2 = make_pair("Swift", 
                    "Python");
  
  // Initializing another pair
  pair pair3;
  pair3 = make_pair("C++", "C");
  
  // Initializing another pair
  pair pair4;
  pair4 = make_pair("PHP", 
                    "HTML");
  
  // Initializing another pair
  pair 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;
}


输出:

解释:

在上面的输出中,元素在对的多重集中以对的排序顺序排列。

示例 2:下面是 C++ 程序,用于演示具有字符串值的多组对的工作。

C++

// C++ program to illustrate the
// implementation of multiset of
// pairs
#include 
using namespace std;
  
// Function to print multiset elements
void print(multiset> &multisetOfPairs)
{
  // Iterating over multiset of pairs elements
  for (auto currentPair : multisetOfPairs)
  {
    // Each element is a pair itself
    pair pr = currentPair;
  
    // Printing pair elements
    cout << "[ " << pr.first << ' ' << 
             pr.second << " ]"<< '\n';
  }
}
  
// Driver code
int main()
{
  // Declaring a multiset of pairs
  multiset> multisetOfPairs;
  
  // Initializing a pair
  pair pair1;
  pair1 = make_pair("GeeksforGeeks", 
                    "GFG");
  
  // Initializing a pair
  pair pair2;
  pair2 = make_pair("Swift", 
                    "Python");
  
  // Initializing another pair
  pair pair3;
  pair3 = make_pair("C++", "C");
  
  // Initializing another pair
  pair pair4;
  pair4 = make_pair("PHP", 
                    "HTML");
  
  // Initializing another pair
  pair 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;
}

输出:

解释:

在上面的输出中,元素在对的多重集中以对的排序顺序排列。