一些简单操作
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 ----------------