C++11 STL函数 UnorderedSet

来源:互联网 发布:php常用函数200个 编辑:程序博客网 时间:2024/06/03 15:49

一些简单操作

UnorderedSetTest.cpp

复制代码
#include <unordered_set>#include <numeric>#include "../../Core/print.hpp"#include "UnorderedSetTest.h"using namespace std;void UnorderedSetTest::simpleOperation(){    // create and initialize unordered set    unordered_set<int> coll = { 1, 2, 3, 5, 7, 11, 13, 17, 19, 77 };    // print elements    // - elements are in arbitrary order    PRINT_ELEMENTS(coll);    // insert some additional elements    // - might cause rehashing and create different order    coll.insert({ -7, 17, 33, -11, 17, 19, 1, 13 });    PRINT_ELEMENTS(coll);    // remove element with specific value    coll.erase(33);    // insert sum of all existing values    coll.insert(accumulate(coll.begin(), coll.end(), 0));    PRINT_ELEMENTS(coll);    // check if value 19 is in the set    if (coll.find(19) != coll.end())     {        cout << "19 is available" << endl;    }    // remove all negative values    unordered_set<int>::iterator pos;    for (pos = coll.begin(); pos != coll.end();)     {        if (*pos < 0) {            pos = coll.erase(pos);        }        else {            ++pos;        }    }    PRINT_ELEMENTS(coll);}void UnorderedSetTest::run(){    printStart("simpleOperation()");    simpleOperation();    printEnd("simpleOperation()");}
复制代码

运行结果:

---------------- simpleOperation(): Run Start ----------------
17 1 2 19 11 3 77 13 5 7
17 1 2 19 11 3 77 13 5 7 -7 33 -11
17 1 2 19 11 3 77 13 5 7 -7 -11 137
19 is available
17 1 2 19 11 3 77 13 5 7 137
---------------- simpleOperation(): Run End ----------------

0 0