IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> Сортировка данных, C++
Rocket
сообщение 3.05.2008 18:14
Сообщение #1


Знаток
****

Группа: Пользователи
Сообщений: 306
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Доброго времени суток, Уважаемые Форумчане! На форуме приведена реализация множества сортировок на Паскале. Где я могу найти их реализацию на языке С++? Если такая имеется у кого-либо, то буду очень признателен, если выложите... good.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 4.06.2008 17:51
Сообщение #2


Гость






Что значит
Цитата
чтобы была возможность работы с данными вещественного, строкового и т.п. типа
? Если ты BubbleSortVer2<int> поменяешь на BubbleSortVer2<char>, твоя программа не будет с ним работать? Или ты хочешь сделать еще одно меню: сначала пользователь выбирает с каким типом работать, а потом - выбирает метод сортировки массива?

Тогда тебе всю работы по вызову сортировок надо вынести в шаблонную функцию:
template <class T>
void work() {
// и здесь производить все операции, которые пользователь выберет
// из меню Message(), инстанцируя шаблоны сортировок типом T, например:

T a[size];
// для инициализации массива "a" можно написать шаблонную
// функцию Random, и сделать ее явные специализации для любого
// типа, с которым ты хочешь работать...
// Ну, а потом - ...

int time=GetTickCount();
BubbleSortVer2<T>(a, size);
time=GetTickCount()-time;
}


В основной же программе:

int main() {
cout << "1: int; 2: double; 3: char; 4: string" << endl;
cin >> choice;

switch(choice) {
case 1:
Work<int>();
break;
case 2:
Work<double>();
break;
case 3:
Work<char>();
break;
case 4:
Work<string>();
break;
}
}
Идея понятна?

Сообщение отредактировано: volvo - 4.06.2008 18:49
 К началу страницы 
+ Ответить 
Rocket
сообщение 4.06.2008 18:30
Сообщение #3


Знаток
****

Группа: Пользователи
Сообщений: 306
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Цитата(volvo @ 4.06.2008 18:51) *

Что значит ? Если ты BubbleSortVer2<int> поменяешь на BubbleSortVer2<char>, твоя программа не будет с ним работать? Или ты хочешь сделать еще одно меню: сначала пользователь выбирает с каким типом работать, а потом - выбирает метод сортировки массива?

Тогда тебе всю работы по вызову сортировок надо вынести в шаблонную функцию:
template <class T>
void work() {
// и здесь производить все операции, которые пользователь выберет
// из меню Message(), инстанцируя шаблоны сортировок типом T, например:

T a[size];
// для инициализации массива "a" можно написать шаблонную
// функцию Random, и сделать ее явные специализации для любого
// типа, с которым ты хочешь работать...
// Ну, а потом - ...

int time=GetTickCount();
BubbleSortVer2<T>(a, size);
time=GetTickCount()-time;
}


В основной же программе:

int main() {
cout << "1: int; 2: double; 3: char; 4: string" << endl;
cin >> choice;

switch(choice) {
case 1:
Work<int>;
break;
case 2:
Work<double>;
break;
case 3:
Work<char>;
break;
case 4:
Work<string>;
break;
}
}
Идея понятна?

Идею понял, код изменил. Но компилятор выдает ошибку при обращение к Work<...>, в чём причина? И ещё вот, мне не особо понятно как со строками использовать эти методы сортировок, или есть какие-то особенности?


Прикрепленные файлы
Прикрепленный файл  TestCool.cpp ( 12.01 килобайт ) Кол-во скачиваний: 166
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Rocket   Сортировка данных   3.05.2008 18:14
volvo   На АлгоЛисте есть...   3.05.2008 18:28
Rocket   На АлгоЛисте есть... О! Спасибо большое...ту...   3.05.2008 18:46
volvo   К любому контейнеру STL можно применять алгоритм с...   3.05.2008 19:05
first_day   Есть STL, подключаешь <algorithm> и юзаешь...   3.05.2008 19:06
Rocket   Есть STL, подключаешь <algorithm> и юзаешь ...   5.05.2008 19:07
volvo   К простым - наверное все-таки сортировка выбором, ...   5.05.2008 19:42
Rocket   К простым - наверное все-таки сортировка выбором,...   10.05.2008 18:00
volvo   Ну, в принципе, можно сделать так: template <cl...   10.05.2008 18:34
Rocket   val = static_cast<T>(std::numeric_limi...   11.05.2008 12:36
volvo   Что именно непонятно в этой строчке? Берем из клас...   11.05.2008 12:43
Rocket   Что именно непонятно в этой строчке? Берем из кла...   11.05.2008 13:11
Rocket   Допустим, я хочу проверить работу различных сортир...   11.05.2008 13:41
volvo   Работа со временем зависит от ОС. Под Win можно сд...   11.05.2008 16:16
Rocket   Работа со временем зависит от ОС. Под Win можно с...   11.05.2008 16:33
Rocket   Работа со временем зависит от ОС. Под Win можно с...   11.05.2008 17:30
volvo   #include <iostream> #include <windows.h...   11.05.2008 17:03
volvo   Инициализируем генератор случайных чисел тем значе...   11.05.2008 17:40
Rocket   Всё работаю над этой программой... У меня возникла...   25.05.2008 14:06
Rocket   Вот собрал все основные методы в одну прогу. Она с...   4.06.2008 16:52
volvo   Что значит ? Если ты BubbleSortVer2<int> пом...   4.06.2008 17:51
Rocket   Что значит ? Если ты BubbleSortVer2<int> по...   4.06.2008 18:30
volvo   Ну да, я накосячил, забыл вызов функции... Поправл...   4.06.2008 18:49
Rocket   Ну да, я накосячил, забыл вызов функции... Поправ...   4.06.2008 19:05
volvo   :blink: Ты чего творишь? int ch,size; // Это как ...   4.06.2008 19:20
Rocket   :blink: Ты чего творишь? int ch,size; // Это как...   4.06.2008 19:30


 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.07.2025 0:01
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"