我需要删除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.现在我如何获取这些值并将它们存储到新的向量中?
任何形式的帮助将不胜感激:)
您有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)