用于对任何数据类型的变量进行排序的 C++ 程序

c++server side programmingprogramming更新于 2024/10/5 3:26:00

我们给出了不同数据类型的值,例如它可以是整数、浮点数、字符串、布尔值等类型,任务是使用一种通用方法或函数对任何数据类型的变量进行排序并显示结果。

在 C++ 中,我们可以使用 std::sort 对 C++ 标准模板库 (STL) 中可用的任何类型的数组进行排序。默认情况下,sort 函数按升序对数组元素进行排序。 Sort() 函数有三个参数 −

数组列表中的起始元素,即您想要开始排序的位置

数组列表中的结束元素,即您想要排序的位置

通过传递 greater() 函数以降序排序,将 sort 函数的默认设置更改为降序。

示例

输入:int arr[] = { 2, 1, 5, 4, 6, 3}
输出:1, 2, 3, 4, 5, 6

输入:float arr[] = { 30.0, 21.1, 29.0, 45.0}
输出:21.1, 29.0, 30.0, 45.0

输入:string str =  {"tutorials point is best", "tutorials point", "www.tutorialspoint.com"}
输出-: tutorials point   tutorials point is best   www.tutorialspoint.com

 

以下程序中使用的方法如下 −

  • 输入不同数据类型的变量,如整数、浮点数、字符串等。
  • 应用 sort() 函数对任何类型数组的元素进行排序
  • 打印结果

算法

开始
步骤 1-> 创建用于操作不同类型数据的模板类 模板 <class T>
步骤 2->创建函数以显示任何数据类型的排序数组
   void print(T arr[], int size)
   循环 For size_t i = 0 and i < size and ++i
      print arr[i]
   结束
步骤 3-> 在 main() 中
   声明数组大小变量 int num = 6
   创建整数类型的数组 int arr[num] = { 10, 90, 1, 2, 3 }
   调用排序函数 sort(arr, arr + num)
   调用打印函数 print(arr, num)
   创建一个字符串类型的数组 string str[num] = { "tutorials point is best",  "tutorials point", "www.tutorialspoint.com" }
   调用排序函数 sort(str, str + num)
   调用打印函数 print(str, num)
   创建一个浮点类型的数组 float float_arr[num] = { 32.0, 12.76, 10.00 }
   调用排序函数 sort(float_arr, float_arr+num)
   调用打印函数 print(float_arr, num)
停止

示例

#include <bits/stdc++.h>
using namespace std;
// 创建模板类的变量
template <class T>
void print(T arr[], int size) {
   for (size_t i = 0; i < size; ++i)  
   cout << arr[i] << "   ";    
   cout << endl;
}
int main() {
   int num = 6;
   int arr[num] = { 10, 90, 1, 2, 3 };
   sort(arr, arr + num);
   print(arr, num);
   string str[num] = { "tutorials point is best", "tutorials point", "www.tutorialspoint.com" };
   sort(str, str + num);
   print(str, num);
   float float_arr[num] = { 32.0, 12.76, 10.00 };
   sort(float_arr, float_arr+num);
   print(float_arr, num);
   return 0;
} 

输出

0   1   2   3 10   90
tutorials point   tutorials point is best   www.tutorialspoint.com
10   12.76   32

相关文章