- C++相談室 part121 [無断転載禁止]©2ch.net
528 :デフォルトの名無しさん[sage]:2015/12/29(火) 12:35:54.08 ID:6RBxEQHH - vector<T> l;
for (size_t i = 0; i < l.size(); ++i) というのをよくやるんですが、size()は毎回評価されちゃうんでしょうか? 今時のコンパイラは賢く定数に置き換えてくれたりしないんでしょうか?
|
- C++相談室 part121 [無断転載禁止]©2ch.net
529 :デフォルトの名無しさん[sage]:2015/12/29(火) 12:38:01.08 ID:6RBxEQHH - あ、constは付けてないと駄目ですよねさすがに
|
- C++相談室 part121 [無断転載禁止]©2ch.net
550 :>>528[sage]:2015/12/29(火) 19:27:40.31 ID:6RBxEQHH - ありがとです
なんか色々調べてもらってすいません 言い忘れましたが、ファイルからデータを読んでvectorにpush_backするつもりです なので、サイズが定数になることはありえないですよね せめてforスコープ内でvectorのサイズが変わらないことをコンパイラが判断して 一回目にsize()を呼び出した後はその値をうまくキャッシュみたいに保持してくれたら 嬉しいんですけど、さすがに無理ですかね まあsize()のコストが気になるケースってそうそうないかな
|