set的常见用法

Posted mengxiaoleng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了set的常见用法相关的知识,希望对你有一定的参考价值。

set的使用

set是什么

set是一个内部有序且不含重复元素的容器

用处

*使得元素自动有序
*去除重复元素

set的引入

    # include <set>
    using namespace std;

set的定义

    set<typename> name;
    //typename可以是任何类型,比如int、float、或者结构体、对象

定义的实际例子

    set<int> name;
    set<float> name;
    set<double> name;
    set<node> name;//node是一个结构体
    set<typename> array[max_size];//定义一个set类型的数组

set的使用

set内部的元素的访问

set只能通过迭代器来进行访问

    //定义迭代器的时候要填写实际的类型
    set<typename>::iterator it;
    set<int>::iterator it;
    set<char>::iterator it;

除了vector和string外的stl容器都不支持*(it+i)的访问方式

元素的插入

# include <iostream>
# include <set>
using namespace std;
int main(void)

    set<int> st;
    st.insert(3);
    st.insert(2);
    st.insert(7);
    st.insert(1);
    for(set<int>::iterator it=st.begin();it!=st.end();it++)
    
        cout<<*it<<endl;
    
    return 0;

set常见函数的使用

insert

insert(x)将x插入set,并自动使得该元素有序且可以去重

find

find(value)查找到集合中值等于value位置的迭代器

# include <iostream>
# include <set>
using namespace std;
int main(void)

    set<int> st;
    for(int i=0;i<4;i++)
    
        st.insert(i);
    
    set<int>::iterator it=st.find(3);
    cout<<*it<<endl;
    return 0;

erase()

erase有两种用法:
1.删除单个元素
1)erase(it),it为要删除元素的迭代器

# include <iostream>
# include <set>
using namespace std;
int main(void)

    set<int> st;
    st.insert(1);
    st.insert(2);
    st.insert(3);
    st.insert(4);
    st.erase(st.find(2));
    for(set<int>::iterator it=st.begin();it!=st.end();it++)
    
        cout<<*it<<' ';
    
    cout<<endl;
    return 0;

2)erase(value),value为要删除的值

# include <iostream>
# include <set>
using namespace std;
int main(void)

    set<int> st;
    st.insert(1);
    st.insert(2);
    st.insert(3);
    st.insert(4);
    st.erase(4);
    for(set<int>::iterator it=st.begin();it!=st.end();it++)
    
        cout<<*it<<' ';
    
    cout<<endl;
    return 0;

2.删除一个区间内的元素

# include <iostream>
# include <set>
using namespace std;
int main(void)

    set<int> st;
    st.insert(1);
    st.insert(2);
    st.insert(3);
    st.insert(4);
    st.erase(4);
    set<int>::iterator it=st.find(1);
    st.erase(it,st.end());
    for(set<int>::iterator it=st.begin();it!=st.end();it++)
    
        cout<<*it<<' ';
    
    cout<<endl;
    return 0;

size()

用来获取集合元素数量

# include <iostream>
# include <set>
using namespace std;
int main(void)

    set<int> st;
    st.insert(1);
    st.insert(2);
    st.insert(3);
    st.insert(4);
    st.erase(4);
    cout<<st.size()<<endl;
    return 0;

clear()

清空所有元素

# include <iostream>
# include <set>
using namespace std;
int main(void)

    set<int> st;
    st.insert(1);
    st.insert(2);
    st.insert(3);
    st.insert(4);
    st.clear();
    cout<<st.size()<<endl;
    return 0;

以上是关于set的常见用法的主要内容,如果未能解决你的问题,请参考以下文章

set--常见成员函数及基本用法

PAT A1063——set的常见用法详解

Python中集合(set)的基本操作以及一些常见的用法

Swift中常见的String用法,Array高阶使用,Set集合操作

Python中集合(set)的操作及一些比较常见的用法

Python学习-集合的常见用法