Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
LVV
88 / 85 / 17
Регистрация: 15.02.2010
Сообщений: 343
#1

Не получается вывести и удалить последний элемент контейнера map - C++

24.01.2015, 20:02. Просмотров 489. Ответов 3
Метки нет (Все метки)

Не получается вывести и удалить последний элемент контейнера map.
Для первого (begin) всё работает. А для последнего (end) даже не выводит значение. Подскажите, что не так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <map>
using namespace std;
int main()
{
    int N,n;
    cin >> N;
    map <int,int> mp;
 
for(int i=0;i<N;i++)
        {
            cin >> n;
            mp[n]++;
        }
 
cout <<mp.begin()->first << "-" << mp.begin()->second << endl;
mp.erase(mp.begin());
cout <<mp.end()->first << "-" << mp.end()->second << endl;
mp.erase(mp.end());
 
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2015, 20:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не получается вывести и удалить последний элемент контейнера map (C++):

Как удалить последний элемент контейнера vector - C++
Доброго вечера всем!!!Подскажите пожалуйста как удалить последний элемент контейнера vector,уменьшив его длину тем самым на 1...

Удалить элементы из контейнера map - C++
#include &lt;iostream&gt; #include &lt;map&gt; using namespace std; int main() { map&lt;int, int&gt; map1; map1 = 2; map1 =...

Задача Иосифа Флавия. Удалить каждый второй элемент из списка и в конце вывести на экран последний оставшийся элемент - C++
Создать циклический список, в котором находятся элементы от 1 до N. Нужно написать программу, которая удаляет каждый второй элемент из...

Как из map выбрать последний элемент? - C++
Как из map выбрать последний елемент? map.end()-1 некатит

Не получается удалить минимальный элемент в массиве и вывести новый. Как сделать это? - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;locale&gt; using namespace std; int main() { setlocale( LC_ALL,&quot;Russian&quot; ); ...

Как вставить элемент и вывести элементы на экран в map<string, map<string,int>> ? - C++
У меня есть map&lt;string, map&lt;string,int&gt;&gt;, в него надо добавить элементы (типа Ivanov potato 200) Использовать именно map&lt;string,...

3
Phoenix_Max
101 / 43 / 11
Регистрация: 08.01.2015
Сообщений: 97
24.01.2015, 20:08 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
mp.end() это не последний, это следующий за последним.

Цитата Сообщение от LVV Посмотреть сообщение
mp.erase(mp.end());
C++
1
2
3
map <int,int> ::iterator it = mp.end();
it--;
mp.erase(it);
2
LVV
88 / 85 / 17
Регистрация: 15.02.2010
Сообщений: 343
24.01.2015, 20:37  [ТС] #3
Всё равно не работает:
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
#include <iostream>
#include <map>
using namespace std;
int main()
{
int N,n;
    cin >> N;
    map <int,int> mp;
    map <int,int>::iterator it;
    
for(int i=0;i<N;i++)
        {
            cin >> n;
            mp[n]++;
        }
 
it=mp.begin();
cout <<it->first << "-" << it->second << endl;
mp.erase(it);
cout << it->first << "-" << it->second << endl;
    
it=mp.end();
it--;
cout <<endl<<it->first << "-" << it->second << endl;
mp.erase(it);
cout <<it->first << "-" << it->second << endl; 
 
return 0;
}
0
Phoenix_Max
101 / 43 / 11
Регистрация: 08.01.2015
Сообщений: 97
24.01.2015, 20:51 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от LVV Посмотреть сообщение
Всё равно не работает:
Вы обращаетесь к удаленным элементам.
Цитата Сообщение от LVV Посмотреть сообщение
mp.erase(it);
cout << it->first << "-" << it->second << endl;
1
24.01.2015, 20:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2015, 20:51
Привет! Вот еще темы с ответами:

Вывести содержимое списка в следующем порядке: первый элемент, последний элемент, второй элемент, предпоследни - C++
#include &lt;iostream&gt; #include &lt;list&gt; #include &lt;iterator&gt; void output(std::list&lt;int&gt; myList, std::list&lt;int&gt;::iterator iter1,...

Не получается. Умножение елементов массива на последний элемент - C++
#include &lt;iostream&gt; using namespace std; int main() { int mas; int i; for (i=0; i&lt;10; i++) { cout &lt;&lt; &quot;&quot;&lt;&lt; &quot;:&quot;; cin...

Найти максимальный элемент массива и вывести последний четный элемент - C++
Короче нужно чтобы програма нашла максимальный елемент масива и выводила на екран последное четное число масива #include&lt;iostream&gt; ...

Удалить последний элемент массива - C++
Может кто помочь как можно удалить последний элемент массива, токо не используя встроеных стеков деков списков и .т.д ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru