0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 37
|
||||||
1 | ||||||
Сортировка диапазона элементов в list (STL)30.04.2014, 21:14. Показов 1521. Ответов 6
Метки нет (Все метки)
Здравствуйте!
Требуется ввести числа в список, задать числа a и b, изменить порядок элементов, начиная с a-го элемента, заканчивая b-ым элементом. Использовать только стандартную библиотеку. Числа в список ввел, но абсолютно не понимаю как изменить порядок элементов В ЗАДАННОМ ДИАПАЗОНЕ. Есть метод reverse, но он меняет порядок во всем списке, а мне надо только в части списка. Получается надо сделать что-то в виде цикла и далее: достать элемент из списка (с помощью какого метода?) и менять его с другим (вроде как метод swap это делает?). Кусок кода:
0
|
30.04.2014, 21:14 | |
Ответы с готовыми решениями:
6
List STL сортировка и поиск Поиск и сортировка list STL (STL LIST SORT) Сортировка по некольким критериям stl, удаление элементов в list |
205 / 181 / 112
Регистрация: 15.03.2014
Сообщений: 392
|
||||||
30.04.2014, 22:06 | 2 | |||||
Острослав, reverse() позволяет изменять порядок на обратный в указанном диапазоне.
Вот Вам пример.
Код
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 0 1 2 3 4 5 6 7 8 9 14 13 12 11 10 15 16 17 18 19 Ключ -std=c++11
0
|
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 37
|
|
30.04.2014, 23:02 [ТС] | 3 |
0
|
205 / 181 / 112
Регистрация: 15.03.2014
Сообщений: 392
|
|
30.04.2014, 23:21 | 4 |
Сообщение было отмечено Острослав как решение
Решение
Нету у меня VS 2010, по ней ничего не подскажу.
А в общем случае заполните список, вызывайте reverse() с указанием нужного диапазона итераторами. Сам алгоритм reverse() работает и без поддержки C++11. Только что проверил - мой код прекрасно собирается на Windows компилятором MinGW, который идет в комплекте с IDE Code::Blocks. Есди задать ключ для C++11. Ссылка на скачивание с официального сайта http://www.codeblocks.org/downloads/26 Файл codeblocks-13.12mingw-setup.exe
1
|
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 37
|
||||||
30.04.2014, 23:33 [ТС] | 5 | |||||
а как задать ключ? (я про это в первый раз слышу)
0
|
205 / 181 / 112
Регистрация: 15.03.2014
Сообщений: 392
|
|
30.04.2014, 23:57 | 6 |
Острослав, Если Вы работаете в командной строке, то прямо в ней и прописываете.
Мой компилятор g++, а файл с исходным кодом называется reverse_list.cpp. Вот пример использования данного ключа. Код
g++ -o reverse_list -std=c++11 reverse_list.cpp Для Code::Blocks можно так: Settings -> Compiller -> Global compiler settings -> Compiler settings -> Compiler flags -> галочка на пункте, в конце которого [-std=c++11] В верхнем выпадающем списке должен быть выбран GNU GCC Compiler, если не используете другой компилятор, отличный от того, что идет в комплекте с данной IDE. Скриншот прикрепил - тут опция для всех проектов. В других IDE, с которыми мне приходилось работать опции компилятора выставляются похожим образом.
1
|
205 / 181 / 112
Регистрация: 15.03.2014
Сообщений: 392
|
|
01.05.2014, 00:05 | 7 |
Поспешишь - людей насмешишь. В PrintList() не нужны std::, ведь уже есть нужное namespace.
1
|
01.05.2014, 00:05 | |
01.05.2014, 00:05 | |
Помогаю со студенческими работами здесь
7
STL list. В изначально пустой список вставить 100 элементов путем вставки в случайную позицию Работа с STL list + пропись List.h STL list STL list Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |