C++ 如何在不重复的情况下检查两个向量是否有公共元素?

C++ 如何在不重复的情况下检查两个向量是否有公共元素?,c++,c++11,visual-c++,C++,C++11,Visual C++,下面是我的函数代码片段,它检查两个数组是否有明显的公共元素,并返回带有这些元素的新向量。但是有一个运行时错误,我看不到它,也无法修复它。我从这里学会了如何使用独特的功能: vector distinct公共元素(vector&x,vector&y) { 矢量; 对于(vector::iterator itx=x.begin();itx不要紧,我发现了错误,我运行循环直到y.end请创建一个答案,然后删除该问题。已经为您完成了此操作。。。 vector<int> distinctCo

下面是我的函数代码片段,它检查两个数组是否有明显的公共元素,并返回带有这些元素的新向量。但是有一个运行时错误,我看不到它,也无法修复它。我从这里学会了如何使用独特的功能:

vector distinct公共元素(vector&x,vector&y)
{
矢量;

对于(vector::iterator itx=x.begin();itx不要紧,我发现了错误,我运行循环直到y.end请创建一个答案,然后删除该问题。已经为您完成了此操作。。。
vector<int> distinctCommonElements(vector<int>&x, vector<int>&y)
{
vector<int>z;

for(vector<int>::iterator itx=x.begin(); itx<x.end(); itx++)
{
    int ctr=0; 
    int memory=0;
    for(vector<int>::iterator ity=y.begin(); ity<=y.end(); ity++)
    {
        if(*itx==*ity&&ctr==0)
        {
            ctr++;
            z.push_back(*itx);
        }
    }
}
//inspiration from stack overflow and the c++ reference for unique algorithm
sort(z.begin(),z.end()); //sort due to the implementation of the unique algorithm
z.erase(unique(z.begin(),z.end()), z.end()); //unique checks adjacent elements, hence sort first, 
//hence answer always sorted
return z;