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

сортировка в multimap - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ warning strtok http://www.cyberforum.ru/cpp-beginners/thread365494.html
Пишу в 10 студии: char* bla = strtok("bla bla bla", " "); Выдаёт варнинг: This function or variable may be unsafe. Consider using strtok_s instead.... И пры выполнении программы на этой строке выкидывает
C++ Ошибка "C2065: cin: необъявленный идентификатор" Задан исходный код лабораторной работы по программированию. Нужно модифицировать код по определенным правилам (в зависимости от варианта). Но при попытке скомпилировать в Visual Studio 2010 выдает ошибку типа Ошибка "error C2065: cin: необъявленный идентификатор" .#include <iostream.h> #include <stdlib.h> #include <iomanip.h> using namespace std; struct CH { int k; CH *ptr; http://www.cyberforum.ru/cpp-beginners/thread365493.html
C++ Чтение файла как hex
Как открыть файл в 16ричном виде? Насколько я понял это средствами только с++ невозможно ... или всё же возможно? Вообще хотелось бы написать небольшую программку которая будет сохранять из файла с hex кодом небольшие кусочки (отрезки кода) и сохранять их в виде файлов. Но допустим так то с файлами я умею работать (в плане открытия в виде текстового/бинарного и сохранения файлов), а вот как...
C++ Разбор задания
Добрый вечер уважаемые эксперты! Есть следующее задание: составить двусвязный список объектов класса описывающего студента (Ф.И.О. номер группы и т.д.) и найти однофамильцев. Подскажите пожалуйста, как мне составить класс Student (просто сам класс), чтобы его объекты были элементами списка?
C++ Виртуальные методы http://www.cyberforum.ru/cpp-beginners/thread365484.html
Здраствуйте , вот писал виртуальный метод доступа но почему то не получаеться , подскажите почему ??? заранее спасибо #include<iostream> using namespace std; class A { public: A(); virtual ~A(){}
C++ Задачи на графы Напишите плз список интересных и популярных задач на графы. Ну или ссылку. подробнее

Показать сообщение отдельно
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
13.10.2011, 04:00     сортировка в multimap
Цитата Сообщение от Mut Посмотреть сообщение
есть ли возможность это организовать стандартными средствами библиотеки STL
Нет, multimap и так содержит в себе функционал сортировки по ключам при вставке нового элемента.
Цитата Сообщение от Mut Посмотреть сообщение
или нужно писать алгоритм для сортировки структуры?
Вот посмотри код ниже прикрутил сортировку для структуры выбрал поле с числовым значением.
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <iostream>
#include <map>
using namespace std;
 
struct hero {
   char name[16];
   int  age; // сортировка будет производиться по этому полю
   hero(void) {}
   hero(char* name, int age) {
      strcpy(this->name, name);
      this->age = age;
   }
   bool operator < (hero obj) const {
      return (this->age < obj.age);
   }
   bool operator > (hero obj) const {
      return (this->age > obj.age);
   }
};
 
 
// ключ константный пришлось применить грубую силу
template<typename KEY, typename TYPE>
void  sort_multimap(multimap<KEY, TYPE>* mmap) {
   multimap<KEY, TYPE>::iterator first = mmap->begin(), last = mmap->end();
   multimap<KEY, TYPE>::iterator a, b;
   TYPE tdata;
   KEY  tkey;
prev:
   b = first;
   for(a = b++; b != last; *a++, *b++) {
       if(a->second > b->second) {
             tkey = (KEY) a->first; 
             tdata = a->second;
             a->second = b->second;
             b->second = tdata;
            *(KEY*)&a->first = b->first;
            *(KEY*)&b->first = tkey;
             goto prev;
        }
    }
}
 
int  main(void) {
   multimap<char, hero> m;
 
   m.insert(make_pair('B', hero("Bob",  30)));
   m.insert(make_pair('S', hero("Stas", 20)));
   m.insert(make_pair('A', hero("Alex", 25)));
   m.insert(make_pair('K', hero("Katy", 19)));
   m.insert(make_pair('A', hero("Angel",29)));
 
   // вывод до сортировки
   for(multimap<char, hero>::const_iterator q = m.begin(); q != m.end(); *q++) 
       cout << q->first << '\t' << q->second.name << "\t\t" << q->second.age << endl;
   
   // пузырковый вариант сортировки
   sort_multimap(&m);
 
   cout.put('\n');
   // результат сортировки
   for(multimap<char, hero>::const_iterator i = m.begin(); i != m.end(); *i++) 
       cout << i->first << '\t' << i->second.name << "\t\t" << i->second.age << endl;
 
   m.clear();
   cin.get();
   return 0;
}
 
Текущее время: 03:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru