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

map assigment of read only data member или WTF? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перегрузка операторов http://www.cyberforum.ru/cpp-beginners/thread889082.html
Объяните пожалуйста такой вопрос: Перегрузка операторов в форме внешних функций и методов класса в языке C++. Что делает? и т.д. и т.п.
C++ Реализация программы на языке С++ используя метод Монте-Карло Происходит воздушный бой между бомбардмровщиком и двумя атакающими его истребителями. Стрельбу начинает бомбардировщик; он дает по каждому истребителю один выстрел и сбивает его с вероятностью р1. Если данный истребитель не сбит, то он независимо от судьбы другого стреляет по бомбардировщику и сбивает его с вероятностью р2. Определить вероятности следущих исходов боя: А-сбит бомбардировщик В-... http://www.cyberforum.ru/cpp-beginners/thread889078.html
C++ Определить радиус и центр наибольшей окружности в области заданных точек, внутри которой нет точек
Определить радиус и центр наибольшей окружности в области заданных точек, внутри которой нет точек Помогите пожалуйста,точки нужно задать через массив,и если можно оформить процедурно
Найти площади всех n-угольников с единичной стороной C++
Найти площади всех n-угольников с единичной стороной, для которых n –число, кратное 7 и записанное только числами, заканчивающимися на 1. Например, 21,707. n <1000000
C++ Куда двигаться дальше? http://www.cyberforum.ru/cpp-beginners/thread889054.html
Ребят, нужно ваше мнение:) Пару недель назад начал изучать c++, за это время изучил функции,структуры, массивы и прочее. Создавал только консольные приложения. Куда собственно двигаться дальше? Стоит ли изучать создание приложение на Windows Form или ещё слишком рано? Кто, что посоветует почитать? Буду очень признателен, вам!;)
C++ Выбор фильтра для джойстика Стоит задача фильтровать координаты джойстика. Сглаживать их. Фильтр Калмана подходит немного: при сильном сглаживании (как и нужно) появляется эффект инертности (что очень не нужно). Вообще координаты просто колеблются около какой-то величины. Ну например джойстик имеет 2000 дискретных значений на каждой из осей. И от него приходит следующая последовательность значений: 0 0 0 -1 0 1 1 1 0 0 -1... подробнее

Показать сообщение отдельно
лилиэн
6 / 6 / 0
Регистрация: 22.11.2012
Сообщений: 95

map assigment of read only data member или WTF? - C++

03.06.2013, 12:44. Просмотров 261. Ответов 5
Метки (Все метки)

задача:из acm.timus.ru
1100. Таблица результатов
Ограничение времени: 1.0 секунды
Ограничение памяти: 16 МБ
Старое программное обеспечение для проведения соревнований использует пузырьковую сортировку для создания таблицы результатов. Однако сейчас команд слишком много, и программное обеспечение работает слишком медленно. Вас попросили написать программу, которая создаёт такую же таблицу результатов, как и старое программное обеспечение, но быстро.
Исходные данные
Первая строка входных данных содержит только целое число 1 < N ≤ 150 000 — количество команд. Каждая из следующих N строк содержит два целых числа: 1 ≤ ID ≤ 107 и 0 ≤ M ≤ 100. ID — уникальный номер команды, а M — количество решённых этой командой задач.
Результат
Вывод должен содержать N строк с двумя целыми числами ID и M в каждой. Строки должны быть отсортированы в порядке убывания M с помощью пузырьковой сортировки (или аналога).


вот что я настрокала с использованием map
Кликните здесь для просмотра всего текста
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
#include<iostream.h>
#include<map.h>
using namespace std;
int main()
{
    long comands;
    cin>>comands;
    map<int,int>table;
    map<int,int>::iterator curr;
    map<int,int>::iterator tmp;
    int i=0;
    for(;i<comands;i++)
    {
                       int key,value;
                       cin>>key>>value;
                       table[key]=value;
    }
    for(curr=table.begin();curr!=table.end();curr++)
       for(tmp=(++curr);tmp!=table.end();tmp++)
          {
             if( (*tmp).second>(*curr).second)
             {
                 int tmpf,tmps;
                 tmpf=(*tmp).first;
                 tmps=(*tmp).second;
                 (*tmp).first=(*curr).first;
                 (*tmp).second=(*curr).second;
                 (*curr).first=tmpf;
                 (*curr).second=tmps;
             }
          }
    for(curr=table.begin();curr!=table.end();curr++)
       cout<<(*curr).first<<" "<<(*curr).second;
 system("pause");
 return 0;   
}

выдает ошибку в этом месте:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 for(curr=table.begin();curr!=table.end();curr++)
       for(tmp=(++curr);tmp!=table.end();tmp++)
          {
             if( (*tmp).second>(*curr).second)
             {
                 int tmpf,tmps;
                 tmpf=(*tmp).first;
                 tmps=(*tmp).second;
                 (*tmp).first=(*curr).first;
                 (*tmp).second=(*curr).second;
                 (*curr).first=tmpf;
                 (*curr).second=tmps;
             }
          }
это я так пузырьковую сортировку реализовала))))
вот что пишет дословно
Миниатюры
map assigment of read only data member или WTF?  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru