Удалить дубликаты элементов из 2 отдельных массивов - PullRequest
0 голосов
/ 08 июня 2018

Как мне вычитать элементы из 2 массивов?

У меня есть массив array_1[5] с элементами {1, 2, 3, 4, 5} и array_2[3] с элементами {2, 3, 5}.На уроке математики мне казалось, что мне нужно только вычесть оставленные группы с {1, 4}.Я попытался вычесть массивы как целые числа, но я не могу понять, как правильно использовать индекс.Я также пробовал сортировать и второй массив, а затем проверять, равны ли их индексы, но это не работает.

Как я могу сделать это в C ++?

1 Ответ

0 голосов
/ 08 июня 2018

Вы ищете разницу между двумя наборами, которая является одним из стандартных алгоритмов

#include <algorithm>
#include <vector>
#include <iterator>

int array_1[] = { 1, 2, 3, 4, 5 };
int array_2[] = { 2, 3, 5 };

std::vector<int> difference;

std::set_difference(std::begin(array_1), std::end(array_1), std::begin(array_2), std::end(array_2), std::back_inserter(difference));

// difference now contains { 1, 4 }

На основании ваших комментариев, я предлагаю вам иметь ваши массивы как std ::векторы.Тогда становится проще.

std::vector<int> array_1 = { 1, 2, 3, 4, 5 };
std::vector<int> array_2 = { 2, 3, 5 };

std::set_difference(array_1.begin(), array_1.end(), array_2.begin(), array_2.end(), std::back_inserter(difference));
...