Studytonight is now part of the GUVI universe. Explore GUVI →
🤩 New Cool Developer Tools for you. Explore →
FREE JavaScript Video Series Start Learning →
Signup/Sign In
Tests
MCQs to test your knowledge.
Compilers
Compilers to execute code in browser.
Index
LAST UPDATED: NOVEMBER 1, 2020

C++ Using STL Unordered Multiset Program

Hello Everyone!

In this tutorial, we will learn about the working of Multiset in STL and its implementation in the C++ programming language.

What is a Multiset?

Multisets are similar to set, with the exception that multiple elements can have the same values (duplicates are retained).

What is an Unordered Multiset?

It is the same as a Multiset but here the elements are not sorted but are stored in random order.

For a better understanding of its implementation, refer to the well-commented C++ code given below.

Code:

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
//Function to print the elements of the vector using an iterator
void showVector(vector<int> v)
{
 //declaring an iterator to iterate through the vector elements
 vector<int>::iterator i;
 for (i = v.begin(); i != v.end(); i++)
 {
 cout << *i << " "; //accessing the elements of the vector using * as i stores the address to each element
 }
 cout << endl;
}
//Function to print the elements of the unordered multiset using an iterator
void showMultiset(unordered_multiset<int> s)
{
 //declaring an iterator to iterate through the multiset
 unordered_multiset<int>::iterator i;
 for (i = s.begin(); i != s.end(); i++)
 {
 cout << *i << " "; //accessing the elements of the unordered multiset using * as i stores the address to each element
 }
 cout << endl;
}
int main()
{
 cout << "\n\nWelcome to Studytonight :-)\n\n\n";
 cout << " ===== Program to demonstrate the working of a Unordered Multiset, in CPP ===== \n\n\n\n";
 cout << "*** Multisets are similar to set, with an exception that multiple elements can have same values. *** \n\n";
 cout << "*** Unordered Multisets stores its elements in a random order depending on the hash method used internally. *** \n\n";
 //Unordered Multiset declaration (Set of integers where duplicates are allowed)
 unordered_multiset<int> s;
 //Filling the elements by using the insert() method.
 cout << "\n\nFilling the Multiset with integers in random order."; //Unordered Multiset stores them in a random order
 s.insert(50);
 s.insert(30);
 s.insert(50);
 s.insert(80);
 s.insert(30);
 s.insert(60);
 cout << "\n\nThe number of elements in the Unordered Multiset are: " << s.size();
 cout << "\n\nThe elements of the Unordered Multiset are: ";
 showMultiset(s);
 //Sorting the unordered multiset by copying its elements to a vector
 vector<int> v(s.begin(), s.end());
 vector<int>::iterator it;
 cout << "\n\nThe elements of the Unordered Multiset after sorting using a vector are: ";
 //sorting the vector elements in ascending order
 sort(v.begin(), v.end());
 showVector(v);
 cout << "\n\n\n";
 return 0;
}

Output:

C++ unordered multiset

We hope that this post helped you develop a better understanding of the concept of an Unordered Multiset in STL and its implementation in C++. For any query, feel free to reach out to us via the comments section down below.

Keep Learning : )



About the author:
Nikita Pandey is a talented author and expert in programming languages such as C, C++, and Java. Her writing is informative, engaging, and offers practical insights and tips for programmers at all levels.

Learn to Code
Learn and practice coding side-by-side.
NEW
C language Course
115+ coding exercises
Javascript Course
85+ coding exercises

AltStyle によって変換されたページ (->オリジナル) /