C++11. Есть multiset. Можно ли предать ему функцию, по которой буде
C++11. Есть multiset. Можно ли предать ему функцию, по которой буде сортировка? К примеру multiset, сортирующий строки по возрастанию количества знаков в строке.
Задать свой вопрос
Виктор Мариков
Могу больше баллов дать, если слишком малюсенько.
2 ответа
Angelina Zapevalina
Пожалуйста, раскрывайте документацию до этого чем задавать вопросы тут.
Вы порождаете мусор, который решается запросом в поисковике.
Ссылка на документацию:
(Удаленная ссылка на документацию на веб-сайте 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. Политика конфиденциальности и контент третьих лиц", администрация веб-сайта не воспрещает размещать ссылки на Контент Третьих Лиц, ровно, как и не несет ответственности за данный контент.
В связи с вышеизложенным, прошу не удалять ссылку на посторонний ресурс.
Вы порождаете мусор, который решается запросом в поисковике.
Ссылка на документацию:
(Удаленная ссылка на документацию на веб-сайте 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);
//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);
Евгения Кандалина
Ууу как же вы ограничены) В том то и соль С++, хочу и пишу хоть функционально, какие проблемы? Мой пример указывает как можно делать, делать либо нет решать ТС, если человек не может переработать кусок кода под себя, вероятно ему не стоит продолжать, а брать готовое, разума не просит..
Дарина Сумятина
Если они, как и большая часть, желают слепо писать сами не понимая что и даже не зная когда стоит, а когда нет, применять те, либо инные стили программирование, их дело, от всей души полагаюсь таких людей будет меньше, хотя что они тут бы забыли.. Наверняка, если бы я сказал что ООП поломанное и можно писать код без него вы бы не поверили, оно может и к лучшему..
Анна
Почитайте о том кто таковой Алан Кей и о том каким он видел ООП
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
выпиши в свою тетрадь те правила этикета которые тебе не были
Разные вопросы.
Анна хорошо учится у неё много подруг свободное от учёбы время
Обществознание.
Облако тегов