Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2010, 23:14   #1
DarkEN_ANGEL
 
Регистрация: 21.01.2010
Сообщений: 9
По умолчанию Сортировка вектора

Здравствуйте, уважаемые форумчане!

Имею vector<wchar_t> itms. Необходимо выполнить его сортировку по алфавиту, да вот не понимаю как сие делать надо...
Может кто нибудь мне подсказать кодом или мыслью?
DarkEN_ANGEL вне форума Ответить с цитированием
Старый 11.12.2010, 23:23   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Код:
std::sort (itms.begin (), itms.end ());
netrino вне форума Ответить с цитированием
Старый 12.12.2010, 00:09   #3
DarkEN_ANGEL
 
Регистрация: 21.01.2010
Сообщений: 9
По умолчанию

Цитата:
Сообщение от netrino Посмотреть сообщение
Код:
std::sort (itms.begin (), itms.end ());
И как сие понять?
DarkEN_ANGEL вне форума Ответить с цитированием
Старый 12.12.2010, 00:12   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от DarkEN_ANGEL Посмотреть сообщение
И как сие понять?
Это и есть ответ на Ваш вопрос. Стандартная функция sort сортирует последовательность, используя, по умолчанию, operator< для сравнения элементов.

std::sort
netrino вне форума Ответить с цитированием
Старый 12.12.2010, 00:22   #5
DarkEN_ANGEL
 
Регистрация: 21.01.2010
Сообщений: 9
По умолчанию

Цитата:
Сообщение от netrino Посмотреть сообщение
Это и есть ответ на Ваш вопрос. Стандартная функция sort сортирует последовательность, используя, по умолчанию, operator< для сравнения элементов.

std::sort
Не судьба... Пишу под WinCE...
DarkEN_ANGEL вне форума Ответить с цитированием
Старый 12.12.2010, 00:29   #6
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

В таком случае можете реализовать процедуру сортировки самостоятельно, используя удобный для Вас алгоритм. В большинстве случаев подойдёт алгоритм быстрой сортировки (quick sort), или, если размеры вектора невелики, а скорость не критична, можете реализовать сортировку пузырьком (bubble sort), что проще.

Кстати, так чем именно std::sort не подходит? Если есть vector, то наверняка должен быть и sort. Или vector Вы реализовали самостоятельно?

Последний раз редактировалось netrino; 12.12.2010 в 00:32.
netrino вне форума Ответить с цитированием
Старый 12.12.2010, 00:37   #7
DarkEN_ANGEL
 
Регистрация: 21.01.2010
Сообщений: 9
По умолчанию

Цитата:
Сообщение от netrino Посмотреть сообщение
Кстати, так чем именно std::sort не подходит? Если есть vector, то наверняка должен быть и sort. Или vector Вы реализовали самостоятельно?
Нет, не самостоятельно - я от этого далёк ))
Странно, конечно, что вектор есть а сортировки нету...

Спасибо за совет, буду разбератся
DarkEN_ANGEL вне форума Ответить с цитированием
Старый 12.12.2010, 00:52   #8
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Кстати, на всякий случай, для использования std::sort необходимо подключить библиотеку algorithm.
Код:
#include <algorithm>
netrino вне форума Ответить с цитированием
Старый 12.12.2010, 10:54   #9
DarkEN_ANGEL
 
Регистрация: 21.01.2010
Сообщений: 9
По умолчанию

Спасибо за совет относительно
Код:
#include <algorithm>
Странно, что сам не додумался - поздно уже было, видать...

Я решил реализовать алгоритм quicksort самостоятельно, так как решил хранить вектор структур с несколькими типами данных, для чего std::sort(...) увы, не подходит.
DarkEN_ANGEL вне форума Ответить с цитированием
Старый 12.12.2010, 12:43   #10
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Цитата:
решил хранить вектор структур с несколькими типами данных, для чего std::sort(...) увы, не подходит.
Подходит-подходит, только надо определить критерий сортировки. Например,
Код:
struct S
{
std::string str;
int a;
};

class CompareStr
{
public:
bool operator()(const S& s1, const S& s2) const
 {
 return s1.str < s2.str;
 }
};

class CompareA
{
public:
bool operator()(const S& s1, const S& s2) const
 {
 return s1.a < s2.a;
 }
}

std::vector<S> vec;
//...
std::sort(vec.begin(), vec.end(), CompareStr());   //Сортировка по строкам
std::sort(vec.begin(), vec.end(), CompareA());   //Сортировка по целым
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка элементов вектора Blad47 Общие вопросы C/C++ 10 29.11.2010 18:42
Вектора C++ DimaSoldier Помощь студентам 4 15.10.2010 00:08
Получение вектора PastoriXx Общие вопросы .NET 0 14.05.2010 19:52
Сортировка элементов вектора m9yt Общие вопросы C/C++ 1 28.04.2010 18:13
элементы вектора realabs Общие вопросы C/C++ 7 03.10.2009 17:21