Как проверить, имеют ли два вектора общие элементы без повторения? - PullRequest
0 голосов
/ 28 февраля 2020

Вот мой фрагмент кода функции, который проверяет, имеют ли два массива отчетливо общие элементы, и возвращает новый вектор с этими элементами. Однако есть ошибка во время выполнения, я не вижу ее и не могу ее исправить. Я узнал, как использовать уникальную функцию здесь:

Проверка на наличие дубликатов в векторе

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;

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...