Multiset in C++ Standard Template Library (STL)



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
Updated on: 2020-04-06T14:10:13+05:30

230 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements