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