sorter Template
No notes
Syntax:
C++
#include <cstdlib> #include <iostream> using namespace std; template<class T> class bSort { public: bSort(int _max){ //конструктор: распределяем память для массива и устанавливаем начальное значение счетчика array = new T[_max-1]; max = _max; count = 0; } ~bSort(){ delete[] array; } //деструктор: освобождаем память void add_item(T item) { if(count<max){ array[count] = item; count++; } } void clear() //очищаем массив { array = new T[max-1]; count = 0; } void sort_this()const //сортировка пузырьком { T buf; for (int i = 0; i<count; i++){ for (int j = 0; j<count-(i-1); j++){ if (array[j]>array[j+1]){ buf = array[j]; array[j] = array[j+1]; array[j+1] = buf; } } } } T &operator[](int index)const //перегружаем оператор [] (будем использовать для вывода на экран) { return array[index]; } private: T* array; //указатель на тип данных int count, max; //размеренность массива }; int main() { int n, cur_numb; //вводим размеренность массива, и заполняем его cin>>n; bSort<int> srt(n); for(int i = 0; i<n; i++){ cin>>cur_numb; srt.add_item(cur_numb); } srt.sort_this(); //вывод массива for(int i = 0; i<n; i++){ cout<<srt[i]<<' '; } cin.get(); cin>>n; return 0; }