C++ set_intersection(STL set_intersection)用法詳解

2020-07-16 10:04:31
除了會建立兩個集合的交集而不是並集之外,set_intersection() 演算法的用法和 set_union() 相同。有兩個版本的 set_intersection(),它們和 set_union() 擁有相同的引數集。下面的一些語句可以說明它的用法:
std::set<string> words1 {"one", "two", "three", "four", "five", "six"};
std::set<string> words2 {"four","five", "six", "seven", "eight", "nine"};
std::set<string> result;
std::set_intersection(std::begin(words1), std::end(words1), std::begin(words2), std::end(words2),std::inserter(result, std::begin(result)));
// Result: "five" "four" "six"
這個 set 容器儲存 string 物件,預設使用 less<string> 的範例對元素排序。兩個容器中元素的交集是它們共有的元素,它們被儲存在 result 容器中。當然,這些元素是升序字串序列。set_intersection() 演算法會返回一個疊代器,它指向目的容器中插入的最後一個元素的下一個位置。