C++11. Есть multiset. Можно ли предать ему функцию, по которой буде

C++11. Есть multiset. Можно ли предать ему функцию, по которой буде сортировка? К примеру multiset, сортирующий строки по возрастанию количества знаков в строке.

Задать свой вопрос
Виктор Мариков
Могу больше баллов дать, если слишком малюсенько.
2 ответа
Пожалуйста, раскрывайте документацию до этого чем задавать вопросы тут.
Вы порождаете мусор, который решается запросом в поисковике.

Ссылка на документацию:
(Удаленная ссылка на документацию на веб-сайте cplusplus com, в поиске наберите multiset, для вас нужна документация про конструктор данного класа)

(Для модераторов: прочитайте прибавленье после ответа, размещение ссылки в ответе не противоречит правилам общества)


Простая программка, как пример использования multiset и его сортировки строк по возрастанию.
Also, для сортировки в multiset, необходимо просто сделать многофункциональный объект (структуру с перегруженным оператором () ) и добавить её в шаблонный конструктор.
Спасибо за отметку "Наихороший ответ" и нажатую кнопку "Спасибо" здесь и в моем аккаунте.

include lt;setgt;
include lt;stringgt;
include lt;iostreamgt;

struct compareStructure

  bool operator() (const std::stringamp; firstValue, const std::stringamp; secondValue) const
 
    return ( firstValue.size() lt; secondValue.size() );
 
;

int main()

  std::multisetlt;std::string, compareStructuregt; multisetExample;
 
  multisetExample.insert("verylongSomeString");
  multisetExample.insert("someString");
  multisetExample.insert("longSomeString");
 
  for (const autoamp; el : multisetExample)
 
    std::cout lt;lt; el lt;lt; std::endl;
 
 
  return 0;



Прибавление для модеров:
Ссылка не нарушает верховодил общества в соответствии с параграфом "3. Услуги Сервиса", пунктом "Предоставление ответа на вопрос".

Цитата:
Размещённый в Сервисе ответ обязан содержать решение всех заморочек, содержащихся в вопросе.
Ответом на вопрос не может быть размещенная в Сервисе ссылка на другой веб-источник, как и копия ответа, ранее размещённого в Сервисе иным Юзером.
Ответ на вопрос из области четких предметов, требующий проведения подходящих расчётов, не может состоять только из окончательного результата, а обязан содержать также упомянутые выше расчёты. Ответ обязан содержать разъяснение трудности, обозначенной Юзером таким образом, чтобы он мог осознать, как следует решать данную проблему.

Ответ содержит исчерпывающее решение задачи, ссылка не является ответом на вопрос, а лишь дополнением к нему, как ровненьким счетом не является ссылкой на копию ответа на данном или стороннем сервисе.
Юзер способен понять решение проблемы и без ссылки на сторонний ресурс.
gt;gt; Ссылка в данном случаи нужна как дополнительный справочный материал на документацию по языку программирования C++, так же наличие ссылки позволяет избежать возникновения очевидных вопросов наподобие данного.

! Важно !
В частности прошу увидеть что в согласовании с параграфом "9. Политика конфиденциальности и контент третьих лиц", администрация веб-сайта не воспрещает размещать ссылки на Контент Третьих Лиц,  ровно, как и не несет ответственности за данный контент.

В связи с вышеизложенным, прошу не удалять ссылку на посторонний ресурс.

Егор Кодушкин
Вау, спасибо
Artjom Shaldenkov
Пожертвовать ради меня баном...
Желанно для начала самому осознать, что должна делать ваша программка, разобраться с STL и почитать документацию, благо msdn бесплатен) Незнаю правильно ли сообразил, но как вариант:
//Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23506 for x64

include lt;iostreamgt;
include lt;setgt;
include lt;stringgt;

using namespace std;

templatelt;typename Tgt;
class MyMultiset

public:
    void InsertElement(const stringamp; str)
   
        m.insert(str);
   
    void PrintSorted(void(*SortMultiset)(multisetlt;Tgt;))
   
        SortMultiset(m);
   
private:
    multisetlt;Tgt; m;
;

templatelt;typename Tgt;
void SortMultiset(multisetlt;Tgt; m)

    auto it     =  m.begin();
    auto comp   =  m.value_comp();
    do 
   
        cout lt;lt; " " lt;lt; *it lt;lt; endl;
     
    while (
            comp(*it++, *m.rbegin())
          );


int main()

    MyMultisetlt;stringgt; m;
    m.InsertElement("hi world");
    m.InsertElement("simple text");
    m.InsertElement("etc");
    m.PrintSorted(SortMultiset);
Евгения Кандалина
Ууу как же вы ограничены) В том то и соль С++, хочу и пишу хоть функционально, какие проблемы? Мой пример указывает как можно делать, делать либо нет решать ТС, если человек не может переработать кусок кода под себя, вероятно ему не стоит продолжать, а брать готовое, разума не просит..
Дарина Сумятина
Если они, как и большая часть, желают слепо писать сами не понимая что и даже не зная когда стоит, а когда нет, применять те, либо инные стили программирование, их дело, от всей души полагаюсь таких людей будет меньше, хотя что они тут бы забыли.. Наверняка, если бы я сказал что ООП поломанное и можно писать код без него вы бы не поверили, оно может и к лучшему..
Анна
Почитайте о том кто таковой Алан Кей и о том каким он видел ООП
, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы
Рассматривая литературный язык как сложное взаимодействие книжного языка и разговорного,В.И.Чернышёв горячо

Разные вопросы.

Арабы входят в __________________ групп народов. Местом расселения арабов с незапамятных

Разные вопросы.

Грузовой автомобиль марки краз за одну поездку может доставить 7.500 кирпичей

Математика.

Определить предложения какие они по цели высказывания и по интонации

Русский язык.

"Три толстяка" Называли эту площадь Площадью Звезды последующей причине.

Русский язык.

на одной грядке коротышки посадили 3 ряда морковок по 8 штук

Разные вопросы.

эссе на тему какое образование дается в каждой семье

Қазақ тiлi.

Put the verb in brackets into the Present Indefinite. 1The Volga ,

Английский язык.

Сколько стоит коктейль молочный? Точную цену надо?

Математика.

Составить рассказ Из чего складывался культ монарха помазанника Божьего?

История.

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт