Используйте решения в следующем приоритете:
1. готовый stl algorithm (например std::find, std::remove_if,...)
2. range based for "for (const auto& elem : myArray)"
3. for (auto iter = myArray.begin()...
4. int
5. size_t
Основная проблема с int -- раздражающий варнинг про сравнение знаковых и беззнаковых типов в
i < array.size(). Немного поможет std::ssize из C++20, который возвращает int. Массивы размера больше чем int встречаются слишком редко чтобы выбирать решение по умолчанию основываясь на них.
Беззнаковые типы приводят к куче ошибок связаных с отрицательными числами. В идеале их нужно использовать только там где нужны контролируемые переполнения (операции по модулю 2^{32,64}). Простой пример где можно выстрелить себе в ногу это цикл от 10 до 0.