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 << "
The multiset gquiz1 is : ";    for (itr = gquiz1.begin(); itr != gquiz1.end(); ++itr)    {       cout << '\t' << *itr;    }    cout << endl;    multiset <int> gquiz2(gquiz1.begin(), gquiz1.end());    cout << "
The multiset gquiz2 after assign from gquiz1 is : ";    for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr)    {       cout << '\t' << *itr;    }    cout << endl;    cout << "
gquiz2 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 << "
gquiz2.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
Updated on 06-Apr-2020 14:10:13

Advertisements