2011-11-18 169 views

回答

44

size_t i替換的int i所有定義。

std::vector<T>::size()返回類型爲size_t,它是無符號的(因爲它對容器不包含負數元素是沒有意義的)。

+1

這是餿主意int會比你的解決方案大size_t 31。儘管此解決方案適用於當前示例,但在其他情況下,這可能會導致難以調試錯誤。 – Sergei

6

std::size_t i = 0;

for (std::size_t i = 0; i != v.size(); ++i) { /* ... */ } 
5

你也可以使用迭代器代替,以避免完全警告的潛力:

for (std::vector<int>::const_iterator i = v.begin(); i != v.end(); ++i) 
{ 
    ... 
} 

或者,如果您正在使用C++ 11:因爲-3

for (int i : v) 
{ 
    ... 
}