I am getting following warning always for following type of code.
std::vector v;
for ( int i = 0; i < v.size(); i++) {
}
warning C4267: 'initializing' : conversion from 'size_t' to 'int', possible loss of data
I understand that size() returns size_t, just wanted to know is this safe to ignore this warning or should I make all my loop variable of type size_t
If you might need to hold more than
INT_MAXitems in your vector, usesize_t. In most cases, it doesn’t really matter, but I usesize_tjust to make the warning go away.Better yet, use iterators:
(If your compiler doesn’t support C++11, use
std::vector<whatever>::iteratorin place ofauto)C++11 also makes choosing the best index type easier (in case you use the index in some computation, not just for subscripting
v):