ArrayBag foundBag;
int z;
z = getCurrentSize(); // tell you have many items exit in the bag
for (int i = 0; i < z; i++)
{
int cur = items[i]; //cur is use to hold each number in the vector and items is the first list of number.
bool found = false; // start as false so it doesnt trigger the true right away
for (int j = 0; j < foundBag.getCurrentSize(); j++) // this loop check the number currently inside cur agianst everything in the foundbag at the moment
{
if (foundBag.items[i] = cur)
{
found == true; // << it didnt detect that it have found the number. I think the problem is here
}
}
if (found == true)
{
// do nothing if found since number is already in the foundbag
}
else if (found != true)
{
foundBag.add(cur); // if number is not found in the foundBag add it to the found bag.
}
}
Так что я пытаюсь сделать, это сравнить значение из существующего списка с новым пустым, которое в этом случае называется foundBag. Таким образом, в основном это предполагает получить ценность из первого мешка, а затем проверить, будет ли этот номер выхода в первом пакете или нет, тогда он добавит этот номер в найденный баг, если он его не найдет. Если он уже нашел номер, он ничего не сделает и перейдет к следующему элементу в первом пакете.C++ Сравнивая значение из 2-х разных списков, чтобы избавиться от дублированного числа, используя 2 для цикла. Не обнаруживает дубликат правильно
скажите, что в первом пакете есть номер 3 4 5 7 5 8 он должен добавить все от 3 4 5 7, затем ничего не делать, когда он добирается до второго 5, а затем добавить 8 к найденному багу. в конце foundBag должен содержать: 3 4 5 7 8
Проблема в том, что он, похоже, не правильно обнаруживает, что номер уже находится в найденном баге, поэтому он все добавляет. Я использовал функцию переходов в визуальной студии, чтобы посмотреть на каждый шаг, но я не мог понять, почему bool по-прежнему переходит к false, когда он нашел одинаковое число.
Я не очень силен в английском, так что если это не делает чувство, пожалуйста, попросите более подробного объяснения
Спасибо
Вы также выглядеть, как вам нужно изменить индекс от 'i' до' j'. –