zoukankan      html  css  js  c++  java
  • STL

    一些简单操作

    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 ----------------

  • 相关阅读:
    [紫书] 八数码问题(BFS)
    [紫书] 移动盒子(Boxes in a Line)
    [洛谷] P1803 凌乱的yyy / 线段覆盖 (贪心)
    [紫书] 破损的键盘(Broken Keyboard)
    bzoj3891
    poj3233
    bzoj1941
    Vijos2034
    poj2985
    Vijos1100
  • 原文地址:https://www.cnblogs.com/davidgu/p/4998083.html
Copyright © 2011-2022 走看看