目錄
1.set簡介
?2.插入數(shù)據(jù)
?3.刪除數(shù)據(jù)
?4.其它常用方法
1.set簡介
set
是 C++ 標(biāo)準(zhǔn)庫中的一個容器,屬于關(guān)聯(lián)容器的一種。它是一個有序集合,其中的元素是唯一的,即每個元素只能在集合中出現(xiàn)一次。set
是基于紅黑樹實現(xiàn)的,這使得插入、刪除和查找操作的時間復(fù)雜度都是 O(log n)。
?2.插入數(shù)據(jù)
使用insert(i)
set<int> s;
s.insert(1);
s.insert(3);
?3.刪除數(shù)據(jù)
使用erase()刪除某一個值
set<int> s;
s.insert(1);
s.insert(3);
s.insert(7);
s.insert(5);
s.erase(s.begin()); //通過迭代器刪除
s.erase(5); //刪除指定值
?使用clear()清空所有值
set<int> s;
s.insert(1);
s.insert(3);
s.insert(7);
s.insert(5);
s.clear(); //清空
?4.其它常用方法
(1)empty() 判斷是否為空
set<int> s;
s.insert(1);
s.insert(3);
s.insert(7);
s.insert(5);
cout<<s.empty(); //不為空,輸出0
(2)size() 返回集合中值的個數(shù)
set<int> s;
s.insert(1);
s.insert(3);
s.insert(7);
s.insert(5);
cout<<s.size(); //輸出4
(3)迭代器
set<int> s;
s.insert(1);
s.insert(3);
s.insert(7);
s.insert(5); //set會默認(rèn)升序排列
for(set<int>::iterator it=s.begin();it!=s.end();it++) //輸出1 3 5 7
{
cout<<*it<<' ';
}
(4)count()計數(shù),因為set中沒有重復(fù)元素,所以count(n)只能為0或1
set<int> s;
s.insert(1);
s.insert(1);
s.insert(5); //set會默認(rèn)升序排列
cout<<s.count(1)<<endl; //即使插入兩次也只有一個1,輸出1
cout<<s.count(2)<<endl; //沒有2,輸出0
(5)lower_bound(key_value)?,返回第一個大于等于key_value的值;? ? ? ? ? ? ? ? ?upper_bound(key_value),返回最后一個大于等于key_value的值文章來源:http://www.zghlxwxcb.cn/news/detail-861278.html
set<int> s;
s.insert(1);
s.insert(1);
s.insert(5); //set會默認(rèn)升序排列
cout<<*s.lower_bound(1)<<endl; //輸出1
cout<<*s.upper_bound(1)<<endl; //輸出5
(6)swap() 交換兩個set集合文章來源地址http://www.zghlxwxcb.cn/news/detail-861278.html
set<int> s,s2;
s.insert(1);
s.insert(3);
s.insert(5); //set會默認(rèn)升序排列
s2.insert(2);
s2.insert(4);
s.swap(s2);
for(set<int>::iterator it=s.begin();it!=s.end();it++) //輸出2 4
{
cout<<*it<<' ';
}
cout<<endl;
for(set<int>::iterator it=s2.begin();it!=s2.end();it++) //輸出1 3 5
{
cout<<*it<<' ';
}
到了這里,關(guān)于c++ set用法詳解超詳細(xì) 適合零基礎(chǔ)小白的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!