[解決済み] forループに対するstd::for_eachの優位性
2022-04-15 04:26:38
質問
の利点は何ですか?
std::for_each
オーバー
for
ループ?私にとっては
std::for_each
は、コードの可読性を阻害するようにしか見えません。それなのに、なぜ一部のコーディング規約では使用を推奨しているのでしょうか?
どのように解決するのか?
の良いところは C++11 (以前はC++0xと呼ばれていました)、この退屈な議論に決着をつけることができるのです。
つまり、コレクション全体を反復処理したいと考えるまともな人は、まだこれを使わないでしょう。
for(auto it = collection.begin(); it != collection.end() ; ++it)
{
foo(*it);
}
またはこれ
for_each(collection.begin(), collection.end(), [](Element& e)
{
foo(e);
});
を指定すると
範囲指定
for
ループ
の構文が利用可能です。
for(Element& e : collection)
{
foo(e);
}
この種の構文は、JavaやC#では以前から利用可能であり、実際にはもっと多くの
foreach
ループは、古典的な
for
のループは、私が見た最近のすべてのJavaやC#のコードにありました。
関連
-
[解決済み】関数名の前に期待されるイニシャライザー
-
[解決済み】 while(cin) と while(cin >> num) の違いは何ですか?)
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] using namespace std;」はなぜバッドプラクティスだと言われるのですか?
-
[解決済み] 要素ごとの加算は、結合ループよりも分離ループの方がはるかに高速なのはなぜですか?
-
[解決済み] C#がforeachで変数を再利用するのは理由があるのか?
-
[解決済み] Javaの「for each」ループはどのように機能するのですか?
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み】クラステンプレートの引数リストがない
-
[解決済み] [Solved] Error C1083: Cannot open include file: 'stdafx.h'
-
[解決済み] string does not name a type Errorが発生するのはなぜですか?
-
[解決済み】IntelliSense:オブジェクトに、メンバー関数と互換性のない型修飾子がある
-
[解決済み】C++の変数はイニシャライザーを持っているが、不完全な型?
-
[解決済み】C++プログラムでのコンソールの一時停止
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み] スタックアロケーションにより初期化されていない値が作成された
-
[解決済み] C++のint配列のforeach