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

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

Войти
Регистрация
Восстановить пароль
 
maria_
5 / 5 / 1
Регистрация: 25.08.2013
Сообщений: 67
#1

Сортировка с использованием итераторов - C++

03.12.2013, 18:00. Просмотров 303. Ответов 0
Метки нет (Все метки)

Добрый день! Я пытаюсь написать сортировку слиянием, используя итераторы. С итераторами раньше не встречалась. Сортировка должна быть шаблонная, вот такая:
C++
1
2
template <class Iterator, class Compare>
void MergeSort(Iterator begin, Iterator end, Compare compare);
Вот, что я пыталась писать, ничего не получилось:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
template <class Iterator, class Compare>
void MergeSort(Iterator begin, Iterator end, Compare compare)
{
    Compare tmpForChange;
    if ( begin == end )
    {
       return;
    }
    if ( right == left.next() )
    {
        if ( compare[ right ] < compare[ left ]  )
        {
            tmpForChange = compare[ right ];
            compare[ right ] = compare[ left ];
            compare[ left ] = tmpForChange;
            return;
            }
        }
        Iterator mid = ( begin + end ) / 2;
        MergeSort(begin, mid);
        MergeSort(mid.next(), end);
        Iterator currLeft = left;
        Iterator currRight = mid.next();
        int current = 0;
        while ( end - begin + 1 != current )
        {
            //здесь не знаю как
        }
}
Вот как её придётся использовать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class A
{
public:
    A() {}
    int a;
        bool operator < ( A elem) 
        {
            return ( a < elem.a );
        }
}
 
int main()
{
    vector<A> vectorA;
    // Допустим, как-то заполнили вектор
    MergeSort<iterator, A>(vectorA.begin(), vectorA.end());
    return 0;
}
Помогите, пожалуйста, написать сортировку.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2013, 18:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка с использованием итераторов (C++):

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

Как с использованием итераторов в массиве чисел найти количество чисел, меньших за введенное? - C++
Как при помощи итераторов в массиве чисел найти количество чисел, меньших за введенное?

Вывести результаты сдачи экзаменов из класса "Зачетка" с использованием итераторов - C++
Задание: Класс &quot;Зачетка&quot; в котором есть массив объекта класса экзамен. Вывести данные по результату сдачи экзаменов для работы с объектами...

Итерации итераторов С++ - C++
Задача &quot;каждому эл-ту вектора присвоить значение его индекса, скопировать это еще в другой вектор и вывести их&quot;. Программа работает...

Использование итераторов - C++
Добрый день, форум! Слышал что вместо того чтобы писать несколько перегрузок для функции, которая принимает массив или вектор или...

Применение итераторов - C++
Подскажите пожалуйста, в чем практичность итераторов, то бишь для чего нужны они в программах?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2013, 18:00
Привет! Вот еще темы с ответами:

Перегрузка итераторов - C++
Почему переполняется итератор vector&lt;char&gt;::iterator p = v.begin(); вот код : int _tmain (int argc, _TCHAR* argv ) { ...

Конфликт итераторов - C++
Доброго времени суток. Пишу Timsort с использованием шаблонов и итераторов. Написал класс CTimsort, в нем все необходимые методы и их...

Не видит класс итераторов - C++
Предметная область: Множество натуральных чисел, Реализованное через Хеш таблицы С цепочками. В классе &quot;myhash&quot; не воспринимается...

Потоки и запоминание итераторов - C++
Жду помощи... хочу, чтобы 2 потока запоминали итераторы, чтобы потом можно было свапнуть разыменованные иттераторы...но проблема с...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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