アカウント名:
パスワード:
動作の違うものを比較しても意味がない
いやほんとにその通りだ。for (int i = 0; i num; ++i)for (int i = 0; i num; i++)でどちらが高速かという話ならまだしも、無意味な比較にしか思えない。
プログラムの意味について議論しているのであれば仰るとおりですが、議論されている内容はプログラムの意味ではありません。少なくともそれだけを議論しているわけではありません。なので比較する意味はあります。
用途も違いますからな。ただどちらかが軽いなら軽い方をつかうべきではある。個人的にはよほどリソースが逼迫しているか顧客からの要求が厳しくない限りはパフォーマンス上有利な方よりも処理に適した方を使いたい。
他の人が書いてくれてるけど、前置インクリメントは左辺値を返すけど後置インクリメントはコピーコンストラクタが呼ばれる後置インクリメントでないとだめな場合はこれhttp://blog.livedoor.jp/dormolin/archives/51781198.html [livedoor.jp]
やー、この例は、
it = cl.erase(it);
が一番真っ当な方法だと思いますけどね。少なくとも、
今回はstd::listを例にあげたが、他のSTLコンテナに対しても同じ事ができる。
はstd::vectorには当てはまらないので、明らかな間違い。
> が一番真っ当な方法だと思いますけどね。少なくとも、
真っ当さの例ではない前置演算子ではうまくいかない例である
> はstd::vectorには当てはまらないので、明らかな間違い。
たまたま当てはまらない例をもって万事OKとするのは間違い
そこは否定していません。「前置演算子ではうまくいかない場合」が間違っているのではなく、「後置インクリメント*でも*だめな場合」がある、ということ。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ハッカーとクラッカーの違い。大してないと思います -- あるアレゲ
馬鹿馬鹿しい (スコア:1)
動作の違うものを比較しても意味がない
Re:馬鹿馬鹿しい (スコア:2)
いやほんとにその通りだ。
for (int i = 0; i num; ++i)
for (int i = 0; i num; i++)
でどちらが高速かという話ならまだしも、無意味な比較にしか思えない。
Re:馬鹿馬鹿しい (スコア:1)
プログラムの意味について議論しているのであれば仰るとおりですが、
議論されている内容はプログラムの意味ではありません。
少なくともそれだけを議論しているわけではありません。
なので比較する意味はあります。
Re: (スコア:0)
用途も違いますからな。ただどちらかが軽いなら軽い方をつかうべきではある。
個人的にはよほどリソースが逼迫しているか顧客からの要求が厳しくない限りはパフォーマンス上有利な方よりも処理に適した方を使いたい。
Re: (スコア:0)
他の人が書いてくれてるけど、前置インクリメントは左辺値を返すけど後置インクリメントはコピーコンストラクタが呼ばれる
後置インクリメントでないとだめな場合はこれ
http://blog.livedoor.jp/dormolin/archives/51781198.html [livedoor.jp]
Re: (スコア:0)
やー、この例は、
が一番真っ当な方法だと思いますけどね。少なくとも、
はstd::vectorには当てはまらないので、明らかな間違い。
Re: (スコア:0)
> が一番真っ当な方法だと思いますけどね。少なくとも、
真っ当さの例ではない
前置演算子ではうまくいかない例である
> はstd::vectorには当てはまらないので、明らかな間違い。
たまたま当てはまらない例をもって万事OKとするのは間違い
Re: (スコア:0)
そこは否定していません。
「前置演算子ではうまくいかない場合」が間違っているのではなく、「後置インクリメント*でも*だめな場合」がある、ということ。