Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ TransformおよびGenerateアルゴリズム | イントロダクション
C++ STLコンテナとアルゴリズム

bookTransformおよびGenerateアルゴリズム

メニューを表示するにはスワイプしてください

Note
定義

C++のtransformアルゴリズムとgenerateアルゴリズムは、コンテナ内のデータを直接変更または生成する関数型スタイルの操作を可能にする機能。

STLはこの目的のために2つの主要な関数、std::transformstd::generateを提供。std::transformは範囲内の各要素に関数を適用して変更された結果を生成し、std::generateは新しい値を供給する関数を使って範囲を埋める。これらを組み合わせることで、コードがより簡潔で表現力豊かになり、保守性も向上。

これらのアルゴリズムにより、STLの機能を最大限に活用した明確で保守性の高いコードの記述が可能。

main.cpp

main.cpp

copy
1234567891011121314151617
#include <iostream> #include <vector> #include <algorithm> #include <ranges> int square(int x) { return x * x; } int main() { std::vector<int> data{1, 2, 3, 4, 5}; std::vector<int> result(data.size()); std::transform(data.begin(), data.end(), result.begin(), square); for (int n : result) std::cout << n << " "; }

コンテナに動的に計算された値を格納する必要がある場合は、std::generate を使用。ジェネレーター関数を適用して、範囲内の各要素を埋めるため、乱数やシーケンス、計算値の生成に最適。std::transform と組み合わせることで、よりクリーンで表現力のあるコードを記述可能。

main.cpp

main.cpp

copy
12345678910111213
#include <iostream> #include <vector> #include <algorithm> #include <cstdlib> int main() { std::vector<int> numbers(5); std::generate(numbers.begin(), numbers.end(), rand); // Fill with random values for (int n : numbers) std::cout << n << ' '; }
question mark

C++において、std::transformstd::generate の主な用途を最もよく表している説明はどれですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  11

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 1.  11
some-alt