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

stl sort vector не сортирует ?! - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычисление площади треугольника по координатам x,y http://www.cyberforum.ru/cpp-beginners/thread908813.html
Привет, задали написать программу вычислить площади треугольника по координатам..данные координат берутся из файла и конечный результат записывается в файл.. А с файлами у меня очень туго..(
C++ Перегрузка функций Необходимо сделать перегрузку #include <iostream> #include <cstdlib> #include <clocale> #include <algorithm> using namespace std; int *InitArr(int *, int); void PrintArr(int *, int); bool DeleteValues(int *&, int, int &); http://www.cyberforum.ru/cpp-beginners/thread908769.html
C++ Вычислить координаты и значения экстремумов гамма-функции на отрезке (-2;2)
вычислить координаты и значения экстремумов гамма-функции на отрезке (-2;2) (вообще без разницы на каком языке)
C++ Функция в функции :-)
Привет! Задался дурацким вопросом :) Можно ли создать функцию внутри функции, чтоб её вызывать там всё время? Например: void Main() { void Child(){std::cout << "DIE YOU SON OF A ...." << std::endl;} .... //а где то в коде просто её вызывать типо Child(); Child(); :-) }
C++ как освободить память? http://www.cyberforum.ru/cpp-beginners/thread908754.html
Здравствуйте!!! Почему-то никак не освобождается память, выделенная оператором new под двумерный массив типа char,- как только идет освобождение, программа выдаем ошибку. #include<iostream> #include<cstring> using namespace std; const size_t AMOUNT_WORDS = 2; //максимальное кол-во слов const size_t MAX_LENGHT_WORD = 4; //размер слова(в реале будет на 1 символ меньше)
C++ нарисовать муравья помогите нарисовать муровья подробнее

Показать сообщение отдельно
Stasito
0 / 0 / 0
Регистрация: 08.12.2011
Сообщений: 25
21.06.2013, 16:41     stl sort vector не сортирует ?!
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
30
31
32
33
34
35
36
class Playlist
{
private:
    std::vector<Song> s_container;
public:
    Playlist()
    {
        s_container=std::vector<Song>();
    }
    double getPlaylistLengthInMinutes()const;
    void addSongToPlaylist(const Song& song);
    void removeSongFromPlaylist(const Song& song);
    bool isSongInPlaylist(const Song& song);
    void playPlaylist();
     std::vector<Song>& getPlaylistVector(){return s_container;}//return the vector of songs in playlist
};
 
class SongCompare//functor to sort songs in radiostation database,uses songs less operator
{
public:
    bool operator()(const Song& s1, const Song& s2) const
    {
        return s1<s2;
    }
};
 
class PlaylistCompare//functor  to sort songs in playlist by its length or name(alphabetic)
{
    public:
    bool operator()( const Song& s1,const Song& s2)const
    {
        if(s1.getSongLengthInMinutes()!=s2.getSongLengthInMinutes())
        return s1.getSongLengthInMinutes()>s2.getSongLengthInMinutes();
        return s1.getSongName()<s2.getSongName();
    }
};


problem is here i think:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void RadioStation::addPlaylist(const Playlist& pl)
{
    if((pl.getPlaylistLengthInMinutes())>12)
        return;
    rs_playlist.push_back(pl);
    PlaylistCompare greater;
    //std::vector<Song>::const_iterator start=pl.getPlaylistVector().begin();
    //while(start!=pl.getPlaylistVector().end())
        //{
            //std::cout<<"BefoRE "<<start->getSongName()<<std::endl;
            //start++;
    //}
    std::vector<Song>::iterator start=rs_playlist.back().getPlaylistVector().begin();
    std::vector<Song>::iterator end=rs_playlist.back().getPlaylistVector().end();
    std::sort(start,end,greater);
    //std::vector<Song>::const_iterator
        //start=pl.getPlaylistVector().begin();
    while(start!=end)
        {
            std::cout<<"AFTER "<<start->getSongName()<<std::endl;
            start++;
    }
}
Добавлено через 5 минут
когда делаю сорт в 15-ой строчке возвращает ту ж последоательность как и в начале
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru