欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

STL之set

程序员文章站 2022-07-10 21:14:17
set即集合,主要用来去除重复元素。 #include #include #include using namespace std; int main() { //构造 set s{ 2,6,8,3,6,9 }; //遍历 for ......

set即集合,主要用来去除重复元素。

#include<iostream>
#include<set>
#include<unordered_set>
using namespace std;

int main()
{
    //构造
    set<int> s{ 2,6,8,3,6,9 };
    
    //遍历
    for (set<int>::iterator it = s.begin(); it != s.end(); it++)
        cout << *it;
    cout << endl;
    //输出:23689
    //输出???
    //set元素不能重复且自动从小到大排序

    //插入
    s.insert(1);
    s.insert(6);
    s.insert(8);
    s.insert(7);
    for (set<int>::iterator it = s.begin(); it != s.end(); it++)
        cout << *it;
    cout << endl;
    //输出:1236789

    //删除指定位置元素
    s.erase(++s.begin());
    for (set<int>::iterator it = s.begin(); it != s.end(); it++)
        cout << *it;
    cout << endl;
    //输出:136789

    //删除指定元素
    s.erase(7);
    for (set<int>::iterator it = s.begin(); it != s.end(); it++)
        cout << *it;
    cout << endl;
    //输出:13689

    //unordered_set不会自动排序,但速度较快
    unordered_set<int> us{ 2,6,8,3,6,9 };
    for (unordered_set<int>::iterator it = us.begin(); it != us.end(); it++)
        cout << *it;
    cout << endl;
    //输出:26839

    //unordered_set无法直接使用sort(),转成vector,见stl之map
    return 0;
}