所以我有13个不同的向量,其中包含一组数字。我想组合共享数字的向量,并删除重复项。 示例:如果我将0和1组合在一起,我不希望有两个2' s。
它们的排序方式是它们总是如何排序,因此数字2在第二组之后不会出现,但可以在它之前出现。这些数字是订购的等等。
我很困惑我会怎么做。
The sets:
Set 0: [0,2]
Set 1: [1,2,5]
Set 2: [2]
Set 3: [3,4]
Set 4: [4]
Set 5: [5]
Set 6: [6,7,8]
Set 7: [7,9]
Set 8: [8,9]
Set 9: [9]
Set 10: [10, 11]
Set 11: [11, 12]
Set 12: [12]
答案 0 :(得分:0)
试试这个:
// Outside your method, in main scope
bool contains(std::vector<int> vec, int val) {
for(int i = 0; i < vec.size(); i++) if(vec[i] == val) return true;
return false;
}
// Inside your method
std::vector<int> glued;
for(int i = 0; i < vector1.size(); i++) { if(!contains(glued, vector1[i])) glued.push_back(vector1[i]); }
// Repeat for all vectors
这种方法效率不高但我不知道更好。
答案 1 :(得分:0)
使用stl :: set容器。对于每个数组,将它们的值添加到stl :: set。 set容器保证只有一个数字实例。完成后,如有必要,将设备转换回矢量。