set,multiset
集合,set會自動過濾掉重復的元素,multiset則允許有重復的元素,set一般用于元素多,且經常需要插入,刪除數據時的場景。set中的元素默認按升序排列聲明和初始化方式
set<T> s;set<T> s(s1);set<T> s=s1;set<T> s={a1,a2,a3,...}set<T> s(contain.begin(),contain.end())set,multiset的相關操作
insert(val) //插入元素insert(iterator1,iterator2) //擦汗如迭代器范圍內的數據find(val) //查找元素 返回一個迭代器count(val) //統計元素個數erase(val) //刪除元素erase(iterator1,iterator2)學習代碼
#include <iostream>#include <set>using namespace std;template <typename Container>void PRintContents(const Container &c); //輸出容器中元素的模板函數int main(){ set<int> a; multiset<int> ma; a.insert(60); a.insert(-1); a.insert(3000); //插入的數據自動按升序排序 a.insert(60); //自動過濾掉重復的元素 cout << "顯示set里面的數據" << endl; /*set<int>::const_iterator it = a.begin(); //常迭代器 while (it != a.end()) { cout << *it << endl; ++it; }*/ PrintContents(a); set<int>::const_iterator itf = a.find(-1); //使用find()查找元素,找到后不能修改該處的數據,應為有默認順序 cout << "找到了" << *itf << endl; cout << endl; ma.insert(3000); ma.insert(a.begin(), a.end()); ma.insert(3000); //允許有重復的元素 cout << ma.count(3000) << endl; //count()計算集合中某個元素的個數,set中為0或1 PrintContents(ma); //刪除3000后的ma cout << "刪除3000后的multiset" << endl; ma.erase(3000); //會刪除所有的相同元素 PrintContents(ma); getchar(); return 0;}template <typename Container>void PrintContents(const Container &c){ Container::const_iterator it = c.begin(); while (it != c.end()) { cout << *it << endl; ++it; }}新聞熱點
疑難解答
圖片精選