Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ sắp xếp biến mọi kiểu dữ liệu


Cho các giá trị khác kiểu dữ liệu như integer, float, string, bool, v.v. Nhiệm vụ là sắp xếp các biến mọi kiểu dữ liệu dùng một phương thức/hàm chung và hiển thị kết quả.

Trong C++, có thể dùng std::sort để sắp xếp mảng bất kỳ kiểu nào có sẵn trong thư viện mẫu chuẩn (STL). Mặc định hàm sort sắp xếp phần tử mảng theo thứ tự tăng dần. Hàm Sort() nhận ba tham số –

  • Phần tử bắt đầu trong danh sách mảng, tức từ đâu bạn muốn bắt đầu sắp xếp.
  • Phần tử kết thúc trong danh sách mảng, tức đến đâu bạn muốn sắp xếp.
  • Thay đổi cài đặt mặc định của hàm sort sang thứ tự giảm dần bằng cách truyền hàm greater() để sắp xếp giảm dần.

Ví dụ

Đầu vào: int arr[] = {2, 1, 5, 4, 6, 3}
Đầu ra: 1, 2, 3, 4, 5, 6

Đầu vào: float arr[] = {30.0, 21.1, 29.0, 45.0}
Đầu ra: 21.1, 29.0, 30.0, 45.0

Đầu vào: string str = {"tutorials point is best", "tutorials point", "www.tutorialspoint.com"}
Đầu ra: tutorials point, tutorials point is best, www.tutorialspoint.com

Cách tiếp cận dùng trong chương trình dưới –

  • Nhập biến các kiểu dữ liệu khác nhau như integer, float, string, v.v.
  • Áp dụng hàm sort() sẽ sắp xếp phần tử mảng bất kỳ kiểu nào.
  • In kết quả.

Thuật toán

Bắt đầu
Bước 1 -> Tạo lớp template cho hoạt động trên nhiều kiểu dữ liệu
    Template 
Bước 2 -> Tạo hàm hiển thị mảng đã sắp xếp mọi kiểu dữ liệu
    void print(T arr[], int size)
    Vòng lặp Với size_t i = 0 đến i < size và ++i
        In arr[i]
    Kết thúc
Bước 3 -> Trong main()
    Khai báo biến kích thước mảng int num = 6
    Tạo mảng kiểu integer int arr[num] = {10, 90, 1, 2, 3}
    Gọi hàm sort(arr, arr + num)
    Gọi hàm print(arr, num)
    Tạo mảng kiểu string string str[num] = {"tutorials point is best", "tutorials point", "www.tutorialspoint.com"}
    Gọi hàm sort(str, str + num)
    Gọi hàm print(str, num)
    Tạo mảng kiểu float float_arr[num] = {32.0, 12.76, 10.00}
    Gọi hàm sort(float_arr, float_arr+num)
    Gọi hàm print(float_arr, num)
Kết thúc

Ví dụ mã C++

#include <bits/stdc++.h>
using namespace std;

// Tạo biến lớp template
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;
}

Đầu ra

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