Использование auto в циклах c ++

Я получаю предупреждение о несоответствии со знаком / без знака для следующего кода:

auto n = a.size();
for (auto i = 0; i < n; i++) {
}

Проблема в том, что, присваивая 0i это становитсяint скорее, чемsize_t, Итак, что лучше:

size_t n = a.size();
for (size_t i = 0; i < n; i++) {
}

или это:

auto n = a.size();
for (size_t i = 0; i < n; i++) {
}

или, может быть, у вас есть лучшее решение? Мне больше нравится первый, потому что он немного более последовательный, он просто используетsize_t а не обаsize_t а такжеauto для той же цели.

Ответы на вопрос(8)

Ваш ответ на вопрос