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;
多组对
对的多重集是一个多重集,其中每个元素本身就是一对。如果对的对应的第一个和第二个元素相等,则认为两个对是相等的。现在,如果需要以特定顺序存储一对以上的副本以及其他元素,在这种情况下,多组对就派上用场了。
句法:
multiset
Here,
dataType1 and dataType2 can be similar or dismilar data types.
示例 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;
}
输出:
[ 1 2 ]
[ 3 4 ]
[ 5 6 ]
[ 7 8 ]
[ 9 10 ]
解释:
在上面的输出中,元素在对的多重集中以对的排序顺序排列。
示例 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;
}
输出:
[ C++ C ]
[ GeeksforGeeks GFG ]
[ Javascript CSS ]
[ PHP HTML ]
[ Swift Python ]
解释:
在上面的输出中,元素在对的多重集中以对的排序顺序排列。