1. 程式人生 > >C++ set容器(附程式碼)

C++ set容器(附程式碼)

set內部其實是一顆二叉搜尋樹。其基本函式如下:

size():返回set的集合數。

clear():清空set。 O(n)

begin():返回指向set開頭的迭代器。

end():返回指向set末尾的迭代器。 

insert(key):向set中插入元素key。O(log(n))  

erase(key):刪除含有key的元素。 O(log(n))

find(key): 查詢與key一致的元素,並返回指向該元素的迭代器,如果沒有找到,則返回末尾end()。O(log(n))

set對於重複元素只能儲存一次。。。

程式碼如下:

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <set>
using namespace std;
set<int>se;
int a[]={5,2,3,6,5};
void print()
{
    //集合的遍歷
    for (set<int>::iterator it=se.begin();it!=se.end();it++)
        printf(" %d",*it);
    printf("\n");
}
int main()
{
    if(se.size()==0)
        printf("集合為空\n");
    //插入元素
    for (int i=0;i<5;i++)
        se.insert(a[i]);
    print();
    //刪除元素
    se.erase(5);
    print();
    //查詢元素
    if(se.find(5)==se.end())
        printf("集合中未存在此元素\n");
    return 0;
}
/*
執行結果
集合為空
 2 3 5 6
 2 3 6
集合中未存在此元素*/