Multiset in C++ Standard Template Library (STL)

C++Server Side ProgrammingProgramming

In this tutorial, we will be discussing a program to understand Multiset in C++ STL (Standard Template Library).

Multiset are associative containers much similar to sets. The one difference multiset holds is they can even contain duplicate values.

Example

 Live Demo

#include <iostream>
#include <set>
#include <iterator>
using namespace std;
int main(){
   multiset <int, greater <int> > gquiz1;
   //inserting values
   gquiz1.insert(40);
   gquiz1.insert(30);
   gquiz1.insert(60);
   gquiz1.insert(20);
   gquiz1.insert(50);
   gquiz1.insert(50);
   gquiz1.insert(10);
   multiset <int, greater <int> > :: iterator itr;
   cout << "\nThe multiset gquiz1 is : ";
   for (itr = gquiz1.begin(); itr != gquiz1.end(); ++itr)
   {
      cout << '\t' << *itr;
   }
   cout << endl;
   multiset <int> gquiz2(gquiz1.begin(), gquiz1.end());
   cout << "\nThe multiset gquiz2 after assign from gquiz1 is : ";
   for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr)
   {
      cout << '\t' << *itr;
   }
   cout << endl;
   cout << "\ngquiz2 after removal of elements less than 30 : ";
   gquiz2.erase(gquiz2.begin(), gquiz2.find(30));
   for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr)
   {
      cout << '\t' << *itr;
   }

   int num;
   num = gquiz2.erase(50);
   cout << "\ngquiz2.erase(50) : ";
   cout << num << " removed \t" ;
   for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr)
   {
      cout << '\t' << *itr;
   }
   cout << endl;
   cout << "gquiz1.lower_bound(40) : "<< *gquiz1.lower_bound(40) << endl;
   cout << "gquiz1.upper_bound(40) : "<< *gquiz1.upper_bound(40) << endl;
   cout << "gquiz2.lower_bound(40) : "<< *gquiz2.lower_bound(40) << endl;
   cout << "gquiz2.upper_bound(40) : "<< *gquiz2.upper_bound(40) << endl;
   return 0;
}

Output

The multiset gquiz1 is : 60505040302010

The multiset gquiz2 after assign from gquiz1 is : 10203040505060

gquiz2 after removal of elements less than 30 : 3040505060
gquiz2.erase(50) : 2 removed 304060
gquiz1.lower_bound(40) : 40
gquiz1.upper_bound(40) : 30
gquiz2.lower_bound(40) : 40
gquiz2.upper_bound(40) : 60
raja
Published on 06-Apr-2020 14:07:56
Advertisements