C++ Set运用实例

#include <iostream>
#include <set>
#include <algorithm>
#include <iterator>
#include <functional>

using namespace std;

int main()
{
    //容器内的元素下降排序
    set<int,greater<int>> set1;
    set1.insert({6,3,5,1,4,2});
    set1.insert(5);

    for (int elem:set1)
    {
        cout << elem << "  ";
    }
    cout << endl;

    auto status = set1.insert(4);
    if (status.second)
    {
        cout << "4 inserted as element "<<distance(set1.begin(),status.first)+1 << endl;
    }
    else
    {
        cout << "4 already exists" << endl;
    }

    //容器内的元素升序排序
    set<int> set2(set1.cbegin(),set1.cend());
    copy(set2.cbegin(),set2.cend(),ostream_iterator<int>(cout,"  "));
    cout << endl;

    //移除从第一个元素到 元素3所在位置的元素
    set2.erase(set2.begin(),set2.find(3));

    //删除所有值为5 的元素
    int num;
    num = set2.erase(5);
    cout << num<<"  element(s) removed" << endl;

    copy(set2.cbegin(),set2.cend(),ostream_iterator<int>(cout,"  "));
    cout << endl;

    system("pause");
    return 0;
}

6 5 4 3 2 1
4 already exists
1 2 3 4 5 6
1 element(s) removed
3 4 6
请按任意键继续. . .

代码参考:C++标准库(第2版)

12-22 20:25