爲什麼對我來說這做工精細:for循環,迭代器和載體不跟我合作
for(int i = 0; i < vec.size(); i++)
{
os << vec[i] << " ";
}
雖然這並不:
for(vector<int>::iterator it = vec.begin(); it < vec.end(); it++)
{
os << vec[*it] << " ";
}
爲什麼對我來說這做工精細:for循環,迭代器和載體不跟我合作
for(int i = 0; i < vec.size(); i++)
{
os << vec[i] << " ";
}
雖然這並不:
for(vector<int>::iterator it = vec.begin(); it < vec.end(); it++)
{
os << vec[*it] << " ";
}
您使用迭代錯了,應該是:
for(vector<int>::iterator it = vec.begin(); it < vec.end(); it++)
{
os << *it << " ";
}
你的代碼只是試圖在指數*it
,這甚至可能不是有效的打印件。
考慮用於打印的'const_iterator'。而且,當像這樣使用時,C++ 11的ranged-for是更好的解決方案。 – chris 2012-08-13 17:38:04
它究竟如何「不工作」?沒有足夠的時間通過循環,或者由於vec [* it]調用而崩潰? – MartyE 2012-08-13 17:41:48