1. 程式人生 > >演算法筆記-6.2 set用法

演算法筆記-6.2 set用法

#include<stdio.h>
#include<set>
using namespace std;
int main(){
    set<int> st;
    st.insert(3);
    st.insert(5);
    st.insert(2);
    st.insert(3);
    for(set<int>::iterator it=st.begin();it!=st.end();it++){
        printf("%d ",*it);//輸出 2 3 5
    }
    return 0;
}

/*--------set容器:自動遞增並且去除重複元素----------
1.set容器只能通過迭代器的方式訪問 
並且除了vector和string之外的STL容器都不支援*(it+i)的方式訪問
所以set容器在輸出的時候只能通過如上方式 並且必須寫it!=st.end() 不能寫it<st.end()
2.st.insert(x)--->將x插入set容器當中
3.st.find(x)--->返回set中對應值的value的迭代器
            set<int>::iterator it=st.find(3)  set裡找到3的值 it=3
4.st.erase()--->刪除元素
            第一種用法:刪除單個值
                        st.erase(it) 可以結合find使用 如st().erase(st.find(100))
                        st.erase(value) value為所需要刪除的值 如st().erase(100)
            第二種用法:刪除一個區間內的所有元素
                        st.erase(first,last)//左閉右開
                        set<int>::iterator it =st.find(30)
                        st.erase(it,st.end());
5.st.size()--->set內元素的個數
6.st.clear()--->清空set中的所有元素

總結:set的用途
1.自動去重並且升序排序
*/