Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
#1

Шаблон функции qsort() - C++

05.04.2013, 16:38. Просмотров 1025. Ответов 15
Метки нет (Все метки)

Здорова!
Нужно реализовать шаблон функции qsort().
Скачал пример и никак не могу разобраться как же эта функция вызывается и где она находится.
Походу она просто тупо вызывается без подключения какой нить библиотеки, то есть как бы она глобально определена. Ничо не пойму.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2013, 16:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Шаблон функции qsort() (C++):

Шаблон функции сравнения для qsort() - C++
Хочу отсортировать массив из int и из double с помощью qsort(). Для этого необходимо определить функцию сравнения элементов. Думал...

Работа функции qsort - объяснить работу функции - C++
#include<iostream> #include<cstdlib> int mysort(const void *arg1, const void *arg2); int main() { const short ARR_SIZE=5; int...

Алгоритм работы функции qsort - C++
Всем добрый день, у меня тут небольшая просьба. Кому не трудно, выложите пожалуйста простой алгоритм функции qsort, а то я ее немного не...

исправление функции qsort сортировки матрицы - C++
#include "stdafx.h" #include <iostream> #include <math.h> #include <conio.h> #include <locale.h> #include <algorithm> ...

Отсортировать в массиве числа с помощью функции qsort по убыванию дробной части - C++
Помогите, пожалуйста. Дан массив вещественных чисел double arr. Отсортируйте в нем числа с помощью функции qsort() по убыванию дробной...

Выполнить сортировку массива с помощью стандартной функции быстрой сортировки qsort - C++
2. Выполнить сортировку массива с помощью стандартной функции быстрой сортировки qsort, прототип которой находится в заголовочном файле...

15
Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
05.04.2013, 16:39 #2
ninja2,
C++
1
2
3
4
5
#include <algorithm>
#include <vector>
std::vector <int> a;
std::sort(a.begin(), a.end());
// либо std::stable_sort(a.begin(), a.end());
1
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
05.04.2013, 16:39  [ТС] #3
Явно эта функция где то глобально определена, если параметр хоть один убрать, то сразу вылазит ошибка типо не определена.
0
Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
05.04.2013, 16:41 #4
ninja2, Само собой. В библиотеке <algorithm>
template <class RandomAccessIterator>
void sort (RandomAccessIterator first, RandomAccessIterator last);
http://www.cplusplus.com/reference/algorithm/sort/
0
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
05.04.2013, 16:41  [ТС] #5
Цитата Сообщение от Ternsip Посмотреть сообщение
ninja2,
C++
1
2
3
4
5
#include <algorithm>
#include <vector>
std::vector <int> a;
std::sort(a.begin(), a.end());
// либо std::stable_sort(a.begin(), a.end());
Ну шаблон qsort() надо написать ну и sort() тоже можно. Токо шаблон, а не просто функции.
0
Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
05.04.2013, 16:43 #6
ninja2, sort это и есть qsort. Он уже описан в библиотеке algorithm.h выше. Эта функция работает за nlogn, как и qsort
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
05.04.2013, 16:44 #7
ninja2, std::sort сама по себе шаблонная функция.
qsort - Си-stype сортировка. Она очевидно не шаблонная. Находится в cstdlib
http://en.cppreference.com/w/cpp/algorithm/qsort

Добавлено через 23 секунды
Ternsip, sort != qsort. Абсолютно никак.
0
Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
05.04.2013, 16:44 #8
ForEveR, нужна как раз шаблонная. обе функции работают за N * log (N) и стека берут одинаково. По-этому я их считаю одинаковыми.
0
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
05.04.2013, 16:47  [ТС] #9
Ternsip, Да не нужна, а нужно разработать шаблон. В условии написано "Реализуйте шаблон qsort()", то есть наверно нужно создать шаблон функции?
0
Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
05.04.2013, 16:47 #10
ForEveR, кстати, sort = это модифицированный Qsort 3 вроде бы.
0
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
05.04.2013, 16:52  [ТС] #11
Это задачи после параграффа по шаблонам там полюбому свою нужно делать например мб как то перегрузить, а уже с шаблона вызвать саму qsort() которая как бы определена.

Добавлено через 36 секунд
Цитата Сообщение от Ternsip Посмотреть сообщение
ninja2, Само собой. В библиотеке <algorithm>
template <class RandomAccessIterator>
void sort (RandomAccessIterator first, RandomAccessIterator last);
http://www.cplusplus.com/reference/algorithm/sort/
А там вообще ничо не ясно.

Добавлено через 3 минуты
Да там впринципе много знать и не нужно главное знать какие ей параметры передавать и как ее подключить.

Добавлено через 25 секунд
Лишнего не нужно
0
Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
05.04.2013, 16:56 #12
ninja2, 1) если вы хотите написать функцию сами -- пишите 2) если вы хотите помощи, я говорю вам -- залезьте в библиотеку algorithm или cstudio да прочитайте, там 100% рабочий код и всё красиво и понятно, по правилам. Или вы хотите, чтобы я и это за вас сделал ?
ЗЫ эта библиотека у вас должна храниться в папке lib или include , а не на cppref
1
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
05.04.2013, 17:01  [ТС] #13
Ternsip, ок буду щас разбираться да я в этом деле ноль.

Добавлено через 21 секунду
Если б кто то за меня сделал было б лучше.
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
05.04.2013, 17:57 #14
ninja2, Алгоритмы сортировок там ищите
0
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
05.04.2013, 19:02  [ТС] #15
Тут еще от гуглю по с qsort() полностью разобрался, а от с sort() даже определение ей дать не могу. Например qsort() это quiksort() то есть быбстроя сортировка. А sort() что это? Нашол IntroSort() Intro вроде переводится как введени, и что введение сорт получается. Какаето фигня. Да и нормальных примеров мало по использованию. Да и по тех что есть, я так понял qsort это универсальная функция, а sort() это тупо для использования токо с контейнерами стл?

Добавлено через 1 минуту
Да и вообще два итератора передается на начало и конец, а от интересно если два итератора передать от начала и до средины? Что тода будет..... Надо протестить.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2013, 19:02
Привет! Вот еще темы с ответами:

Выполнить сортировку массива с помощью стандартной функции быстрой сортировки qsort - C++
Здравствуйте! прошу вас о помощи! помогите пожалуйста с программой! &quot;Выполнить сортировку массива с помощью стандартной функции быстрой...

Используя перегруженные функции и шаблон функции удалить из массива элемент по индексу - C++
Стоит следующая задача: Используя перегруженные функции и шаблон функции удалить из массива элемент по индексу. Функцию написал, но я...

шаблон функции. Задачей функции является округление вышеуказанного вещественного числа с заданной точностью - C++
Написать функцию, которая принимает в качестве параметров вещественное число и количество знаков после десятичной точки, которые должны...

Ошибка в шаблоне функции: "Отсутствуют экземпляры шаблон функции, соответствующие списку аргументов" - C++
#include &lt;iostream&gt; #include &lt;iterator&gt; #include &lt;map&gt; #include &lt;Windows.h&gt; #include &lt;functional&gt; #include &lt;string&gt; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
05.04.2013, 19:02
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru