ホームページ >バックエンド開発 >C++ >C++ STL コンテナをソートするにはどうすればよいですか?

C++ STL コンテナをソートするにはどうすればよいですか?

WBOY
WBOYオリジナル
2024-06-02 20:22:00496ブラウズ

C++ で STL コンテナを並べ替える方法: sort() 関数を使用して、std::vector などのコンテナを所定の位置で並べ替えます。順序付けされたコンテナー std::set および std::map を使用すると、要素は挿入時に自動的にソートされます。カスタムの並べ替え順序の場合、文字列のベクトルをアルファベット順に並べ替えるなど、カスタム コンパレータ クラスを使用できます。

如何排序C++ STL容器?

C++ STL コンテナを並べ替える方法

STL (標準テンプレート ライブラリ) は、並べ替えを含むコンテナ上でさまざまな操作を実行するための、柔軟で効率的な汎用アルゴリズムのセットを提供します。次のセクションでは、C++ で STL コンテナを並べ替える一般的な方法をいくつか説明します。

sort() 関数を使用する

std::sort() 関数は、コンテナーを並べ替えるための C++ の最も単純な関数です。コンテナへの参照またはポインタを入力として受け入れ、その要素を所定の位置に並べ替えます。次の例は、sort() 関数を使用して std::vector を並べ替える方法を示しています。 std: :map の組み込み並べ替え std::sort() 函数是 C++ 中进行容器排序最简单的函数。它接受一个容器的引用或指针作为输入,并将其元素原地排序。以下示例演示如何使用 sort() 函数对一个 std::vector 进行排序:

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
  std::vector<int> v = {3, 1, 4, 2, 5};

  // 使用 sort() 函数对向量进行排序
  std::sort(v.begin(), v.end());

  // 打印排序后的向量
  for (int num : v) {
    std::cout << num << " ";
  }
  
  return 0;
}

输出:

1 2 3 4 5

使用 std::set 和 std::map 的内建排序

std::setstd::map 是 C++ 中的有序容器,它们维护自己的元素集合并在插入时自动对元素进行排序。以下示例展示如何使用 std::set

std::setstd::map は、独自の要素セットを維持し、要素を自動的に並べ替える C++ の順序付けされたコンテナーです。次の例は、std::set を使用して整数のセットを作成および並べ替える方法を示しています。

#include <iostream>
#include <set>

int main() {
  std::set<int> s = {3, 1, 4, 2, 5};

  // 由于 std::set 是有序的,元素按升序存储
  for (int num : s) {
    std::cout << num << " ";
  }
  
  return 0;
}
出力:

1 2 3 4 5

カスタム並べ替えコンパレーター

必要な場合は、カスタム コンパレータ クラスを通じて実装できます。次の例は、文字列のベクトルをアルファベット順に並べ替えるカスタム コンパレーターを作成する方法を示しています。

以上がC++ STL コンテナをソートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。