Этот код выдает предупреждения при компиляции его под окнами. Любые решения?
#include<vector>
int main(){
std::vector<int> v;
//...
for (int i = 0; i < v.size(); ++i) { //warning on this line
//...
}
}
Ответ 1
Замените все определения int i на size_t i.
std::vector<T>::size() возвращает тип size_t, который не имеет знака (поскольку для контейнеров не имеет смысла содержать отрицательное число элементов).
Ответ 2
Скажите std::size_t i = 0;:
for (std::size_t i = 0; i != v.size(); ++i) { /* ... */ }
Ответ 3
Вместо этого вы можете использовать итераторы, чтобы избежать возможности для предупреждения вообще:
for (std::vector<int>::const_iterator i = v.begin(); i != v.end(); ++i)
{
...
}