我讀到這裏和其他地方,使用的索引,你應該迭代一個std :: vector的時候:迭代多的std ::矢量
std::vector <int> x(20,1);
for (std::vector<int>::size_type i = 0; i < x.size(); i++){
x[i]+=3;
}
但如果你迭代的兩種不同類型的載體是什麼:
std::vector <int> x(20,1);
std::vector <double> y(20,1.0);
for (std::vector<int>::size_type i = 0; i < x.size(); i++){
x[i]+=3;
y[i]+=3.0;
}
它是安全的假設,
std::vector<int>::size_type
爲鄰f與
相同std::vector<double>::size_type
?
僅僅使用std :: size_t會安全嗎?
謝謝。
喜歡這,你被教導錯了。除了任何體面的編譯器應該優化爲'++ i'的'i ++'之外,你仍然可以調用'x。size()'在循環的每一個循環中,如果它是非平凡的而不是inline是浪費的。 – 2010-02-04 17:49:46
@Matthieu,只是一個快速和骯髒的例子來說明我的問題。我也應該使用迭代器,而不是通過索引來完成。 – Mark 2010-02-04 19:09:41