集合set
,是一個無序不重複元素集, 可用於消除重複元素。
支持union
(並), intersection
(交), difference
(差)和sysmmetric difference
(對稱差集)等數學運算。程序員
STL
提供了上面這些經常使用的數學運算算法,C++
程序員應該熟練掌握它們,但它們也只是咱們處理集合算法的冰山一角,下面咱們對它們展開介紹。算法
std::set_union(A.begin(), A.end(), B.begin(), B.end(), std::back_inserter(results));
std::set_intersection(A.begin(), A.end(), B.begin(), B.end(), std::back_inserter(results));
bool UincludesA = std::includes(begin(U), end(U), begin(A), end(A));
std::set_difference(A.begin(), A.end(), B.begin(), B.end(), std::back_inserter(results));
std::set_symmetric_difference(A.begin(), A.end(), B.begin(), B.end(), std::back_inserter(results));
須要注意的是,前面全部的算法都要求輸入的數據是排序好的。spa
O(n)
,而不是O(nlogn)