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

Сортировка вектора - C++

Восстановить пароль Регистрация
 
Zhandarbek
3 / 3 / 0
Регистрация: 15.08.2011
Сообщений: 60
04.01.2012, 18:56     Сортировка вектора #1
Здравствуйте! Я хочу отсортировать вектор в обратном порядке, что-то похожее на:
C++
1
stable_sort(v.end(),v.begin());
все вроде компилируется, но вектор не выводится.

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
vector <int> v;
.......
.......
n = mas[0];
 
    for (int i = 1; i < 5; i++)
    {
        if (mas[i] == n)
            a++;
        else
            {
             n = mas[i];
             v.push_back(a);
             a = 1;
            }
    }
 
    v.push_back(a);
    stable_sort(v.end(),v.begin());
 
    for (int i = v.size() - 1; i >= 0; i--)
    { 
     cout << v[i] <<" ";
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2012, 18:56     Сортировка вектора
Посмотрите здесь:

сортировка вектора C++
Сортировка вектора C++
C++ сортировка вектора
C++ Сортировка элементов вектора
сортировка вектора sort() C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
04.01.2012, 19:24     Сортировка вектора #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <vector>
#include <iterator>
#include <iostream>
#include <algorithm>
 
int main()
{
    std::vector<int> v;
    for(int i = 0; i < 10; ++i)
        v.push_back(i);
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    std::stable_sort(v.rbegin(), v.rend());
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    return 0;
}
Быть может вы так хотели?
Zhandarbek
3 / 3 / 0
Регистрация: 15.08.2011
Сообщений: 60
04.01.2012, 19:27  [ТС]     Сортировка вектора #3
Цитата Сообщение от soon Посмотреть сообщение
Быть может вы так хотели?
не совсем, просто хотел узнать какая ошибка в моем коде? и почему не сортирует в порядке убывания?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
04.01.2012, 19:38     Сортировка вектора #4
Он с сегфолтом должен вываливаться. Потому, что примерная реализация такова
C++
1
2
3
...
for( ; first != last; ++first)
....
Соответсвенно, т.к. v.end() больше чем v.begin(), цикл будет бесконечный(пока не разыменуется нулевой указатель. Или что-то вроде него).

Добавлено через 8 минут
Цитата Сообщение от Zhandarbek Посмотреть сообщение
и почему не сортирует в порядке убывания?
А если просто отсортировать в порядке убывания, то просто вместе с std::greater<T> отсортировали бы
Yandex
Объявления
04.01.2012, 19:38     Сортировка вектора
Ответ Создать тему
Опции темы

Текущее время: 11:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru