如何比较和删除3个向量之间没有相同值的元素?

dro*_*ath 0 c++

我需要删除3个向量或更多向量之间没有相同值的所有元素.例如,

vector<int> Vector1, Vector2, Vector3;
for(int i = 2; i < 7; i++) Vector1.push_back(i); // Vector1 = {2, 3, 4, (5), (6)}
for(int i = 3; i < 8; i++) Vector2.push_back(i); // Vector2 = {3, 4, (5), (6), 7}
for(int i = 5; i < 10; i++) Vector3.push_back(i); // Vector3 = {(5), (6), 7, 8, 9}
Run Code Online (Sandbox Code Playgroud)

我们知道所有向量都有2个具有相同值的元素:5和6.现在我如何获取这些值并将它们存储到新的向量中?

任何形式的帮助将不胜感激:)

Ara*_*raK 5

您有set_intersection标准算法库(向量必须排序):

// This code does it for two vectors only

vector<int> a, b, r;

for(int i = 0; i < 10; i++)
{
    a.push_back(i);
    b.push_back(i+5);
}

set_intersection(
    a.begin(), a.end(),
    b.begin(), b.end(),
    back_inserter(r));
Run Code Online (Sandbox Code Playgroud)