我只是用std::vector这个问题,我可以保证每个向量中没有重复(但是每个向量中没有任何顺序)。如何合并我拥有的向量?
std::vector
例:
如果我有以下向量…
1 1 3 2 5 5 4 2 4 4 2
合并后,我应该只剩下两个向量:
1 2 3 4 5
再次,我只使用矢量,std::set不允许使用。
std::set
您可以使用std :: set_union算法。
int first[] = {5,10,15,20,25}; int second[] = {50,40,30,20,10}; std::vector<int> v(10); // 0 0 0 0 0 0 0 0 0 0 std::vector<int>::iterator it; std::sort (first,first+5); // 5 10 15 20 25 std::sort (second,second+5); // 10 20 30 40 50 it=std::set_union (first, first+5, second, second+5, v.begin()); // 5 10 15 20 25 30 40 50 0 0 v.resize(it-v.begin()); // 5 10 15 20 25 30 40 50
请参阅:http : //www.cplusplus.com/reference/algorithm/set_union/