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

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

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

сортировка list - C++

13.07.2013, 22:21. Просмотров 686. Ответов 13
Метки нет (Все метки)

Здорова!
Почему то список не сортируется с помощью аргумента sort, вот код:
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
#include <iostream>
using std::cout;
using std::endl;
#include <list>
using std::list;
#include <algorithm>
using std::sort;
#include <functional>
using std::less;
#include <vector>
using std::vector;
 
int main()
{
    int mass[]={3,1,2,5,4};
    list<int> l(mass,mass+5);
    list<int>::iterator it;
    vector<int> v(mass,mass+5);
 
    //вывод
    for(it=l.begin();it!=l.end();++it)
        cout <<*it<<' ';
    cout <<endl;
 
    //отсортируем
    sort(l.begin(),l.end());
    //l.sort();
    
 
    //выведем отсортированный список
    for(it=l.begin();it!=l.end();++it)
        cout <<*it<<' ';
    cout <<endl;
 
    return 0;
}
Если вектор сортирую, то он норм сортируется, в чом проблема? sort же вроде алгоритм для любых последовательностей должен работать.?!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.07.2013, 22:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос сортировка list (C++):

Сортировка vector и list - C++
Здравствуйте. vector&lt;int&gt; функцией STL медленнее сортируется, чем list&lt;int&gt; собственным методом. #include &lt;cstdlib&gt; #include...

Сортировка контейнера list - C++
Как отсортировать (с помощью sort()) и вывести в текстовый документ список l ? код программы: #include &lt;iostream.h&gt; #include &lt;vector&gt;...

Сортировка std::list - C++
Есть такой фрагмент програми. Создаю функцию для сортировки list. Вроде все правильно. В класе перегружены оператори &lt; i =. Не знаю что...

List STL сортировка и поиск - C++
Ребят, прошу помощи. Перерыл весь инет, нашёл кучу ссылок, пытался сделать поиск и сортировку, ни чего не получается. Помогите пожалуйста,...

Сортировка list по одному из полей - C++
Помогите пожалуйста! У меня есть структура, содержащая несколько полей (типа int, char, char). Я считываю из 2-го файла в эту структуру,...

Поиск и сортировка list STL - C++
Здравствуйте формумчане. Такая проблема. Написал почти рабочий код, но столкнулся с 2-мя проблемами. Первая: не могу понять как...

13
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,385
Записей в блоге: 2
Завершенные тесты: 1
13.07.2013, 22:26 #2
Потому что у std::list свой sort, потому что он list
1
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
13.07.2013, 22:27 #3
ninja2, ты бы посмотрел сначала справку какую по std::sort: там в аргументах - RandomAccessIterator...
1
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,385
Записей в блоге: 2
Завершенные тесты: 1
13.07.2013, 22:29 #4
Цитата Сообщение от ninja2 Посмотреть сообщение
sort же вроде алгоритм для любых последовательностей должен работать.?!
В Стандарте есть такой термин required behavior, который часто используется. Конкретно для элеметов последовательности, передаваемой в sort тоже есть свой required behavior, если интересно, можешь открыть почитать.

Добавлено через 19 секунд
опоздал
1
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
13.07.2013, 22:31  [ТС] #5
Kastaneda, ну хз. мб ты и прав.
0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,385
Записей в блоге: 2
Завершенные тесты: 1
13.07.2013, 22:31 #6
Цитата Сообщение от Kastaneda Посмотреть сообщение
можешь открыть почитать.
уже открыл, вот
Цитата Сообщение от cl. 25.4.1
Requires: RandomAccessIterator shall satisfy the requirements of ValueSwappable (20.2.2). The typeof *first shall satisfy the requirements of MoveConstructible (Table 34) and of MoveAssignable
Я в посте выше слегка не то написал, тут просто требования, а не требуемое поведение элементов.
0
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
13.07.2013, 22:37  [ТС] #7
Цитата Сообщение от Kastaneda Посмотреть сообщение
В Стандарте есть такой термин required behavior, который часто используется. Конкретно для элеметов последовательности, передаваемой в sort тоже есть свой required behavior, если интересно, можешь открыть почитать.
не не интересно.

Добавлено через 1 минуту
Kastaneda, а функция swap тоже вроде в list есть, так что она тоже не вызовется если из algorithm вызвать, вроде должна вызваться?

Добавлено через 3 минуты
Kastaneda, Ладно будем просто считать что для list нельзя вызвать? Что б сильно не парится.
0
gray_fox
13.07.2013, 22:40
  #8

Не по теме:

Цитата Сообщение от ninja2 Посмотреть сообщение
Что б сильно не парится.
Ну ты тогда совсем не тот язык выбрал для изучения, ИМО

0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,385
Записей в блоге: 2
Завершенные тесты: 1
13.07.2013, 22:42 #9
Цитата Сообщение от ninja2 Посмотреть сообщение
Kastaneda, а функция swap тоже вроде в list есть, так что она тоже не вызовется если из algorithm вызвать, вроде должна вызваться?
Цитата Сообщение от ninja2 Посмотреть сообщение
не не интересно.
А вот открыл бы стандарт и не задавал бы таких вопросов
Цитата Сообщение от ninja2 Посмотреть сообщение
Ладно будем просто считать что для list нельзя вызвать? Что б сильно не парится.
Ну не хочешь париться, можешь так считать. Но это не путь "Гуру"
0
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
13.07.2013, 22:45  [ТС] #10
Цитата Сообщение от Kastaneda Посмотреть сообщение
А вот открыл бы стандарт и не задавал бы таких вопросов
А есть на русском стандарт?

Добавлено через 1 минуту
Цитата Сообщение от Kastaneda Посмотреть сообщение
Ну не хочешь париться, можешь так считать. Но это не путь "Гуру"
Посмотрим время покажет. Я чуствую силу .
0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,385
Записей в блоге: 2
Завершенные тесты: 1
13.07.2013, 22:49 #11
Цитата Сообщение от ninja2 Посмотреть сообщение
А есть на русском стандарт?
Однажды я натыкался на какой-то блог, в котором чувак писал, что перевел стандарт '03 и, вроде как, собирался продавать свой перевод (непонятно кому). А так стандарт выпускается только на английском и вряд ли когда-нибудь будет выпускаться на каком-либо другом языке.
1
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
13.07.2013, 22:50  [ТС] #12
Цитата Сообщение от Kastaneda Посмотреть сообщение
А так стандарт выпускается только на английском и вряд ли когда-нибудь будет выпускаться на каком-либо другом языке.
От поэтому мне не сильно охота его читать, есть поинтереснее литература на русском.
0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,385
Записей в блоге: 2
Завершенные тесты: 1
13.07.2013, 23:01 #13
Цитата Сообщение от ninja2 Посмотреть сообщение
От поэтому мне не сильно охота его читать, естьь поинтереснее литература на русском.
я не просто так написал выше
Цитата Сообщение от Kastaneda Посмотреть сообщение
(непонятно кому)
дело в том, что когда программист доходит до уровня, чтобы читать Стандрат, предполагается, что он уже знает английский на достаточном уровне, если же ты не знаешь английский на таком уровне, значит и Стандарт читать тебе не надо. Казалось бы "где связь?", а она есть
Попробую объяснить в двух словах (хотя на эту тему можно написать несколько страниц) - в процессе обучения ты рано или поздно начинаешь читать англоязычные справки, мануалы, хелпы и т.д., потому что русской литераторы становится мало (все, что есть на русском это 99% инфа для начинающих) И, даже если в английском полный 0, то через некоторое время ты начнешь читать на нем без переводчика (как я когда-то поймал себя на мысли, что свободно читаю cplusplus.com, хотя всю жизнь учил немецкий). А необходимость читать Стандарт, как правило, возникает когда ты уже знаешь С++ на достаточном уровне (иначе ты там мало что поймешь), соответственно если ты знаешь С++ на таком уровне, значит ты уже не первый год программируешь, а значит, что ты уже перечитал туеву кучу всяких манов, гайдов и хелпов на английском, а это в свою очередь значит ты уже можешь читать стандарт (почти) без переводчика. Вот

P.S. не бывает программиста без знания английского, просто не бывает.
1
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
14.07.2013, 01:09  [ТС] #14
Kastaneda, Да нет я токо русские книги читаю и то вторую токо.
Да конечно у меня уровень не низкий, так скромно скажем .
И cplusplus.com тоже читаю, но как его читаю? Просто выдрал пример разобрал как он работает и все либо функцию что она делает перевел в переводчике и это все чтение. Да если подумать на русском литературы полно. От еще пользы большой в описании нету, главное что бы был кусочек кода пример, как что работает, просто взял пример поэкспериментировал что он делает, да там и так понятно. Бывает на русском читаешь фиг что разберешь, токо понимаешь тогда когда уже поэкспериментируешь с примером, либо пример распишешь что какая строчка делает.
0
14.07.2013, 01:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.07.2013, 01:09
Привет! Вот еще темы с ответами:

Сортировка диапазона элементов в list (STL) - C++
Здравствуйте! Требуется ввести числа в список, задать числа a и b, изменить порядок элементов, начиная с a-го элемента, заканчивая b-ым...

(STL LIST SORT) Сортировка по некольким критериям - C++
Здравствуйте! Столкнулся с такой проблемой при сортировке списка. %-) Есть структура: struct PackObject { bool ...

Сортировка в std::list состоящем из объектов класса - C++
Добрый день. Вопрос в следующем. Допустим у нас есть некий класс A и класс B. В классе B есть list из объектов класса A. Вопрос, как...

Сортировка std::list ошибка компиляции algorithm 3868 error C2784 - C++
Добрый день, есть пользовательский класс, с вектором в качестве контейнера всё работает хорошо. А вот со списком вылетает ошибка: код:...


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

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

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