1. ホーム
  2. c++

[解決済み] 範囲ベースの「for」ループは、多くの単純なアルゴリズムを非推奨とするのか?

2023-08-09 09:26:29

質問

アルゴリズムによる解答です。

std::generate(numbers.begin(), numbers.end(), rand);

範囲ベースのfor-loopソリューションです。

for (int& x : numbers) x = rand();

なぜ、より冗長な std::generate を使いたいのでしょうか?

どのように解決するのですか?

最初のバージョン

std::generate(numbers.begin(), numbers.end(), rand);

は、一連の値を生成したいことを告げています。

第二版では、読者は自分でそれを考えなければなりません。

タイピングを節約することは通常、読む時間で失われることが多いため、最適とは言えません。ほとんどのコードは、タイプされるよりもずっと多く読まれます。