ソート()関数の使用法

まず、ソート機能の基本的な知識

図1に示すように、ソート機能は、ヘッダファイル内に配置されています 書式#include <アルゴリズム>で、それは、C ++標準ライブラリの関数です。
2、ソート関数プロトタイプ以下、3つのパラメータがなかったです

void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);
  • 最初:最初のものはソートする列の先頭アドレスです。
  • 最終:第二の端アドレスがソートされた順序になることです。
  • CoMP:第三の方法がソートされて、あなたはセットのルールそのものを並べ替えることができます。パラメータは、デフォルトは昇順です、省略することができます。

配列を並べ替え)、最初の最後の、左右の開口部とを閉じます。

第二に、一般的なアプリケーション

1、基本データ型の順序

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

using namespace std;

// 创建排序规则
bool comp01(int a, int b)
{
	return a > b;
}

int main()
{
	vector<int> v1 = { 10,20,40,5,60,9 };
	int arr[] = { 10,2,30,5,1,80,56 };
	// 默认的升序排列
	sort(v1.begin(), v1.end()); 
	//按照指定的规则进行降序排列
	sort(v1.begin(), v1.end(), comp01);
	// 对前四个元素进行排序。arr+4表示从起始位置向偏移4个位置
	sort(arr, arr + 4);
	cin.get();
}

2、カスタムデータ型の順序

カスタムデータ型は、カスタムデータ型が複合型であってもよいので、照合を指定しない場合は、ルールがソートされるように指定する必要があり、ソートされた、プログラムが知っているものに応じてソートすることができません

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

using namespace std;

class A
{
public:
	A(string x, int y, double z) :name(x), age(y), score(z) {}

	string GetName()
	{
		return name;
	}

	int GetAge() 
	{ 
		return age;
	}

	int GetScore()
	{
		return score;
	}
private:
	string name;
	int age;
	int score;
};

// 创建排序规则:按年龄由大到小排序
bool comp01(A x, A y)
{
	return x.GetAge() > y.GetAge();
}

// 按分数由低到高排序
bool comp02(A x, A y)
{
	return x.GetScore() < y.GetScore();
}

void PrintVector(vector<A> v)
{
	for (auto &res : v)
	{
		cout << "name = " << res.GetName() << " \tage = " << res.GetAge() << " \tscore = " << res.GetScore() << '\n';
	}
	cout << endl;
}

int main()
{
	vector<A> v;
	A a1("tom", 10, 80);
	A a2("kity", 8, 88);
	A a3("Li", 15, 99);
	A a4("Zhang", 7, 82);

	v.push_back(a1);
	v.push_back(a2);
	v.push_back(a3);
	v.push_back(a4);

	// 对于自定义数据结构类型的排序必须要指定排序规则,否则程序不知道按那个成员的值进行排序
	sort(v.begin(), v.end(), comp01);
	PrintVector(v);

	sort(v.begin(), v.end(), comp02);
	PrintVector(v);

	cin.get();
}

結果は以下の通りである:
ここに画像を挿入説明
[クラスのソート機能を使用する場合、静的型との比較の規則を定義する必要があります]

公開された213元の記事 ウォン称賛48 ビュー110 000 +

おすすめ

転載: blog.csdn.net/Jeffxu_lib/article/details/104739039