Введение
В этом практическом занятии вы научитесь сортировать строки по длине с использованием собственного метода сортировки на языке программирования C++. Также вы узнаете, как реализовать собственную логику сортировки и упорядочить элементы неупорядоченного набора в определенном порядке.
Создайте новый файл
Первым шагом является создание нового файла. Откройте терминал и перейдите в каталог ~/project. Создайте новый файл с именем main.cpp с использованием предпочитаемого текстового редактора.
cd ~/project
touch main.cpp
Напишите код
Добавьте следующий код в файл main.cpp. Этот код отсортирует набор строк по их длине.
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
//Возвращает true, если длина первой строки больше, чем у второй
bool cmp(string x, string y)
{
int n = x.length();
int m = y.length();
if (n > m)
return true;
else
return false;
}
//Функция для вывода элементов неупорядоченного набора с использованием итератора
void show(unordered_set<string> s)
{
//Объявление итератора для перебора неупорядоченного набора
unordered_set<string>::iterator i;
for (i = s.begin(); i!= s.end(); i++)
{
cout << *i << " "; //Доступ к элементам неупорядоченного набора с использованием *, так как i хранит адрес каждого элемента
}
cout << endl;
}
int main()
{
cout << "\n\nДобро пожаловать в LabEx :-) \n\n\n";
cout << " ===== Программа для демонстрации сортировки строк по длине на CPP ===== \n\n\n\n";
cout << " *** Неупорядоченный набор автоматически удаляет дубликаты элементов и сохраняет случайный порядок. *** \n\n";
cout << " *** Этот случайный порядок зависит от хэш-функции, которая используется внутри. *** \n\n";
cout << " *** Элементы неупорядоченного набора можно отсортировать, скопировав их в вектор. *** \n\n";
//Объявление неупорядоченного набора (неупорядоченный набор строк)
unordered_set<string> s;
//Заполнение элементов с использованием метода insert()
cout << "\n\nЗаполнение неупорядоченного набора строками в случайном порядке. " //В отличие от Set, это не автоматически сортируется
s.insert("Study");
s.insert("Tonight");
s.insert("Aditya");
s.insert("Abhishek");
s.insert("C++");
s.insert("Hi");
cout << "\n\nЭлементы неупорядоченного набора перед сортировкой:\n ";
show(s);
//Объявление вектора и инициализация его элементами неупорядоченного набора
vector<string> v(s.begin(), s.end());
//Сортировка элементов вектора по убыванию длины с использованием пользовательского компаратора
sort(v.begin(), v.end(), cmp);
cout << "\n\nЭлементы неупорядоченного набора после сортировки по убыванию длины с использованием пользовательского компаратора:\n";
//Объявление итератора для перебора вектора
vector<string>::iterator it;
for (it = v.begin(); it!= v.end(); it++)
{
cout << *it << " "; //Доступ к элементам вектора с использованием *, так как i хранит адрес каждого элемента
}
cout << "\n\n\n";
return 0;
}
Компилируйте и запустите код
Для компиляции этого кода перейдите в каталог ~/project в терминале и запустите следующую команду:
g++ main.cpp -o main && ./main
Вывод покажет отсортированный список строк.
Резюме
В этом практическом занятии вы узнали, как сортировать неупорядоченный набор строк, написав собственный метод сортировки на языке программирования C++. Также вы узнали, как реализовать собственную логику сортировки и упорядочить элементы неупорядоченного набора в определенном порядке. Эти знания могут быть применены в широком спектре программных проектов, помогая вам создавать эффективный и легко читаемый код.



