Удалить дубликаты элементов из 2 отдельных массивов

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

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

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

1

Решение

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

#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 :: vectors. Тогда это становится проще.

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));
6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]