C++相談室 part127 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0379デフォルトの名無しさん (ワッチョイ 8e79-9S67)
2016/10/20(木) 00:27:47.18ID:kMYn5m+Q0std::vector のイテレータは auto が使えて便利なのに...
for (auto i = v.begin(); i < v.end(); ++i) i->clear(); // OK
イテレータが使えないクラスだと...
for (auto i = 0; i < f.size(); ++i) f.getItem(i).clear(); // i は int、size() は size_t なので不可
for (auto i = f.size(); --i >= 0; ) f.getItem(i).clear(); // i は size_t なのでこの手も使えない
for (auto len = f.size(), i = 0; i < len; ++i) f.getItem(i).clear(); // len は size_t なのに i は int なので不可
結局こうするしかないの?(いちいち型を調べてコーディングしないといけない?)
for (size_t i = 0; i < f.size(); ++i) f.getItem(i).clear(); // OK
■ このスレッドは過去ログ倉庫に格納されています