C++ 標準模板庫 (STL) 中的多重集
在本教程中,我們將討論一個程式來了解 C++ STL(標準模板庫)中的多重集。
多重集是與集合非常相似的關聯容器。多重集具有的一個區別是它們甚至可以包含重複的值。
示例
#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;
}輸出
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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP