<set> is an ordered container of unique elements, maintained in sorted order via a red-black tree. Insertion, deletion, and lookup are O(log n). Use std::multiset to allow duplicates.
Use std::set when you need a sorted unique collection; use std::unordered_set if you don't need order.
This example builds a set from a list with duplicates, showing automatic deduplication and sorted iteration.
// compile: g++ -std=c++11 -o setexample setexample.cpp // run: ./setexample // description: set insertion and iteration #include <set> #include <iostream> int main() { std::set<int> numbers = {3, 1, 4, 1, 5}; std::cout << "set (duplicates removed): "; for (int x : numbers) std::cout << x << " "; std::cout << "\n"; numbers.insert(2); std::cout << "after insert(2): "; for (int x : numbers) std::cout << x << " "; std::cout << "\n"; return 0; }