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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 692
#1

Сортировка строк STL - C++

19.09.2011, 23:21. Просмотров 1707. Ответов 4
Метки нет (Все метки)

Подскажите пожалуйста как работает эта программа

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
#include <iostream>
#include <string>                 
#include <algorithm>
using namespace std;
                                   
char* names[] = { "Сергей", "Татьяна", "Елена",
                  "Дмитрий", "Михаил", "Владимир" };
 
bool alpha_comp(char*, char*);      
 
int main()
   {
   sort(names, names+6, alpha_comp); 
 
   for(int j=0; j<6; j++)     
      cout << names[j] << endl;
         cin.get();
   cin.get();
   return 0;
   }
 
bool alpha_comp(char* s1, char* s2) 
                                     
   {
   return ( strcmp(s1, s2)<0 ) ? true : false;
   }

Мне не понятны вот эти строки. Почему они такие какие есть ?

C++
1
bool alpha_comp(char* s1, char* s2)
C++
1
2
   for(int j=0; j<6; j++)     
      cout << names[j] << endl;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2011, 23:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка строк STL (C++):

Сортировка списка строк с использованием стандартных алгоритмов библиотеки STL - C++
Сортировка слов по количеству в них букв 'А'. Сортировка списка строк с использованием стандартных алгоритмов библиотеки STL. Мне не...

Сортировка в STL - C++
У меня есть n массивов, неважно по сколько элементов, гланое что их длина одинаковая. Всё массивы отображения первого массива. Надо...

Сортировка списка (STL) - C++
Здравствуйте, я столкнулся с проблемой: Мне нужно отсортировать обьекты. Обьекты есть елементами списка. Список задается как лист. ...

Сортировка для Stl - C++
Коротышки провели психологическое тестирование &lt;&lt;Узнай себя&gt;&gt;.Запись о результатах записали в файл, в виде кто какие качества имеет ( в...

stl сортировка,поиск - C++
Как правильно сортировать Multiset&lt;char&gt; A Queue&lt;char&gt; B Напишите плз для каждого по 2 сортировки За возростанием и за спаданием. ...

Библиотека STL, сортировка - C++
Сортировка слов по количеству вхождений в слово его первой буквы... Можно какой-нибудь пример?? Можно не всю программу, а только...

4
Jupiter
Каратель
Эксперт С++
6556 / 3977 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
19.09.2011, 23:40 #2
Цитата Сообщение от parkito Посмотреть сообщение
bool alpha_comp(char* s1, char* s2)
а что вассдесь смущет? это заголовок функции - компаратора


Цитата Сообщение от parkito Посмотреть сообщение
for(int j=0; j<6; j++)
cout << names[j] << endl;
вывод на экран
0
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 692
19.09.2011, 23:43  [ТС] #3
Цитата Сообщение от Jupiter Посмотреть сообщение
а что вассдесь смущет? это заголовок функции - компаратора
Я привык, что сам выбираю что посылать в функцию. Но Здесь не понятно что посылается.
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
20.09.2011, 09:48 #4
parkito, Непонятно? Почитайте побольше про std::sort.
При каждом вызове функции сравнения туда посылаются две строки. Распечатайте внутри функции - поймете.
1
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
20.09.2011, 13:37 #5
parkito, в выражении
Цитата Сообщение от parkito Посмотреть сообщение
sort(names, names+6, alpha_comp);
первые два аргумента - это начало и конец диапазона, который обрабатывает алгоритм sort, а третий - функция-предикат. В случае с алгоритмом sort, эта функция используется для проверки того, что первый аргумент, переданный ей при вызове (из sort), должен стоять перед вторым. Таким образом, используя один и тот же алгоритм (sort), при помощи предиката мы можем менять правила сортировки (по возрастанию, по убыванию, строки по алфавиту, наборы значений по ключу и т.д.)
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2011, 13:37
Привет! Вот еще темы с ответами:

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

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

STL. Сортировка объектов в контейнере - C++
Имеется список list из объектов Time (минуты:секунды). Через собственный метод (list.sort(предикат)) сортировка проходит успешно, а при...

Не работает сортировка Stl sort - C++
вот код сортировки массива обычным stl sort () #include&lt;conio.h&gt; #include&lt;iostream.h&gt; #include&lt;vector.h&gt; #include&lt;algorithm&gt; ...


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
20.09.2011, 13:37
Ответ Создать тему
Опции темы

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