set和multiset容器简介
set和multiset容器簡介
開發工具與關鍵技術:C++、VisualStudio 作者:何任賢 撰寫時間:2019年06月20日 set 是一個集合容器,其中所包含的元素是唯一的,集合中的元素按一定的順序排列。它其他的 容器不同,它是不能指定位置插入的,它的元素插入過程是按排序規則插入的。 set雖然不能指定位置插入,但是在插入和刪除操作較快,因為set采用紅黑樹變體的數據結構 實現,紅黑樹屬于平衡二叉樹。 但是set不能直接存取元素,不可以使用at.(pos)與[]操作符。 那么set和multiset的區別:set 支持唯一鍵值,每個元素值只能出現一次;而 multiset 中同一值可 以出現多次,雖然set和multiset有區別,但是其他的基本一樣。 不可以直接修改 set 或 multiset 容器中的元素值,因為該類容器是自動排序的。如果希望修改一 個元素值,必須先刪除原有的元素,再插入新的元素。 下面是set容器的使用示范#include
#include
using namespace std;
void main()
{
set set1;
for (int i = 0; i<5; i++)
{
int tmp = rand()%100;
set1.insert(tmp);
}
set1.insert(10);
set1.insert(10);
set1.insert(10);
set1.insert(10);
set1.insert(10);
for (set::iterator it = set1.begin(); it != set1.end(); it++)
{
cout << *it << " ";
}
cout << “\n”;
}
我之前說過set和multiset的區別, set支持唯一鍵值,每個元素值只能出現一次,意思是set容器中一個元素只能出現一次,所以剛才新增的5個10就只剩一個了。
下面是multiset的簡單演示,大體內容和set演示一樣。
#include
#include
using namespace std;
void main()
{
multiset set1;
for (int i = 0; i<5; i++)
{
int tmp = rand()%100;
set1.insert(tmp);
}
set1.insert(10);
set1.insert(10);
set1.insert(10);
set1.insert(10);
set1.insert(10);
for (multiset::iterator it = set1.begin(); it != set1.end(); it++)
{
cout << *it << " ";
}
cout << “\n”;
}
總結
以上是生活随笔為你收集整理的set和multiset容器简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 碳达峰、碳中和带来的机遇和挑战研究报告
- 下一篇: stack容器