Не соответствие типов при сравнении int и vector.size()?
Добрый день.
в цикле сравниваю int i с vector.size(), компилятор (VS) пишет: <: несоответствие типов со знаком и без знака
Вот что делаю:
vector<int> myvector; (потом я заполняю вектор, на цикле он заполнен)
for(int i = 0; i < myvector.size(); i++) // тут ругается, но продолжает работать, не ошибку выдает, просто предупреждение
Не могу понять почему пердупреждение, разве size возвращает не int?
Пердупреждение должно звучать так: "ну возьми да глянь документацию хоть одним глазком".
Набираешь в гугле vector size - и первой же ссылкой будет статья с сигнатурой этой функции!
Вообще-то size_t - это unsigned long, так что при следовании этому совету следующим номером будет предупреждение о возможной потере данных при приведении. Или, если повезет, реальный баг.
profesor08, ответ автору я написал в комментарии. Вы этот ответ прекрасно проиллюстрировали - именно поэтому подобные вещи нужно узнавать из учебников и документации, а не на QA-сайтах и форумах. Здесь дают совет, как избавиться от предупреждения и ничему не научиться.
Adamos, он учиться не хочет. О типах со знаком и без я помню с первого знакомства с языком. Где и какой тип используется не упомнить, с этим ide справляется прекрасно.