C++ STL コンテナを操作するための STL アルゴリズム プロセス: 適切なアルゴリズムを選択: 最大値の検索、要素のコピー、並べ替えなど、必要な操作に基づいて STL アルゴリズムを選択します。入力および出力の反復子の決定: 入力コンテナーと出力コンテナーの反復子の範囲を指定します。バイナリ関数オブジェクトを提供します。必要な要素ごとの操作を実行するファンクターを定義します。アルゴリズムの呼び出し: アルゴリズム() 関数を使用して、選択したアルゴリズムを呼び出し、反復子の範囲とファンクターを渡します。
標準テンプレート ライブラリ (STL) は、シーケンス コンテナ (vector
、 リスト
と マップ
)。これらのアルゴリズムは、一般的なデータ処理タスクを実行するための効率的で再利用可能なメカニズムを提供するように設計されています。 vector
、list
和map
)。这些算法的设计目的是提供一种高效且可重复使用的机制来执行常见的数据处理任务。
STL算法遵循以下语法:
template<typename InputIterator, typename OutputIterator, typename Function> OutputIterator algorithm(InputIterator first, InputIterator last, OutputIterator result, Function op);
其中:
InputIterator
和OutputIterator
指定了输入和输出容器的迭代器类型。first
和last
是输入容器的迭代器范围。result
是输出容器的迭代器。op
#include <algorithm> #include <iostream> #include <vector> using namespace std; int main() { vector<int> numbers = {1, 3, 5, 7, 9}; auto max_value = *max_element(numbers.begin(), numbers.end()); cout << "最大值:" << max_value << endl; return 0; } 输出:
ここで: InputIterator
と OutputIterator
は入力の反復子を指定し、出力コンテナのタイプ。
first
と last
は、入力コンテナのイテレータ範囲です。 result
は出力コンテナのイテレータです。
op
は、入力要素に対して演算を実行するために使用されるバイナリ関数オブジェクト (ファンクター) です。 実際のケース
**2. 复制元素**最大値: 9
cout << num << " ";
名前空間 std を使用します。
int main() {
Vectorbd43222e33876353aff11e13a7dc75f6numbers = {1, 3, 5, 7, 9};
Vectorbd43222e33876353aff11e13a7dc75f6 copy;copy.reserve(numbers.size());効率を上げるには
copy_n(numbers.begin(),numbers.size(),back_inserter(copy));
for(int num : copy) {
1 3 5 7 9
}cout <<
return 0;
}🎜🎜出力: 🎜#include🎜🎜3. 並べ替え🎜🎜rrreee🎜1 2 3 5 7🎜#include #include using namespace std; int main() { vector numbers = {5, 1, 3, 7, 2}; sort(numbers.begin(), numbers.end()); for (int num : numbers) { cout << num << " "; } cout << endl; return 0; } 输出:
以上がSTL アルゴリズムを使用して C++ STL コンテナーを操作するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。