Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Заблокирован
1

Map c++ убрать строку только в том случае если строка повторяется больше чем один раз

04.03.2022, 13:17. Показов 924. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте,
Нужно убрать строку только в том случае если строка повторяется больше чем один раз. Как это сделать? Нужно обязательно использовать 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
#include <iostream>
#include <map>
#include <string>
#include <algorithm>
using namespace std;
 
int main()
{
    int n,x;
    cin>>n;
    pair <string, string> p;
    multimap<string,string> v;
    for(int i=0; i<n; i++)
    {
        cin>>p.first>>p.second;
        v.insert(p);
    }
    for (auto i:v)
    {
      cout<<i.first<<" "<<i.second<<" ";
      cout<<endl;
    }
}
Standard Input:

5
сломанный принтер
сломанный сейф
украденный принтер
сломанный сейф
остановка лифта

Standard Output:

остановка лифта
сломанный принтер
сломанный сейф
украденный принтер
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.03.2022, 13:17
Ответы с готовыми решениями:

Предикат, который истинен в том случае, если ни один из элементов числового списка не больше заданного числа
Определить предикат, который истинен в том случае, если ни один из элементов числового списка не...

В каком случае и во сколько раз время движения больше, если тело прошло один и тот же путь?
Тело, которому сообщена начальная скорость, параллельная наклонной плоскости, поднимается вверх ...

Дана строка. Создать новую строку, все буквы которой входят в первую строку только один раз
Дана строка. Создать новую строку, все буквы которого входят в первую строку только один раз....

Сохранение переменной только в том случае если она не пустая
Добрый день,есть код в котором pytesseract методом image_to_strong считывает Скорость с картинки,но...

3
фрилансер
5498 / 5094 / 1047
Регистрация: 11.10.2019
Сообщений: 13,341
04.03.2022, 14:12 2
Цитата Сообщение от closetothespace Посмотреть сообщение
Нужно обязательно использовать map
Цитата Сообщение от closetothespace Посмотреть сообщение
multimap
а чего тогда мультимап ? ))

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <map>
#include <string>
 
int main()
{
    size_t n{};
    std::cin>>n;
 
    std::map<std::string,std::string> v;
    for(size_t i=0; i<n; i++)
    {
        std::string key; std::cin>>key;
        std::cin>>v[key];
    }
    for (const auto& [key,val]:v)
    {
      std::cout<<key<<" "<<val<<" ";
      std::cout<<std::endl;
    }
}
1
Заблокирован
04.03.2022, 15:08  [ТС] 3
Цитата Сообщение от Алексей1153 Посмотреть сообщение
а чего тогда мультимап ? ))
map или multimap.
Забыла добавить просто)) Спасибо!

Добавлено через 50 минут
Цитата Сообщение от Алексей1153 Посмотреть сообщение
#include <iostream>
#include <map>
#include <string>
int main()
{
size_t n{};
std::cin>>n;
std::map<std::string,std::string> v;
for(size_t i=0; i<n; i++)
{
std::string key; std::cin>>key;
std::cin>>v[key];
}
for (const auto& [key,val]:v)
{
std::cout<<key<<" "<<val<<" ";
std::cout<<std::endl;
}
}
Этот код не до конца хорошо работает, так как если написать это:

3
сломанный принтер
сломанный сейф
украденный принтер

Ответ будет:

сломанный сейф
украденный принтер

А должен быть:

сломанный сейф
сломанный принтер
украденный принтер
0
фрилансер
5498 / 5094 / 1047
Регистрация: 11.10.2019
Сообщений: 13,341
04.03.2022, 15:31 4
Лучший ответ Сообщение было отмечено closetothespace как решение

Решение

closetothespace,
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
#include <iostream>
#include <map>
#include <string>
 
int main()
{
    size_t n{};
    std::cin>>n;
    
    std::string key;
    std::getline(std::cin,key);//убираем один перевод строки
 
    std::map<std::string,std::string> v;
    for(size_t i=0; i<n; i++)
    {
        std::getline(std::cin,key);
        std::cout<<"key=="<<key<<'\n';
        v[key];
    }
    for (const auto& [key,val]:v)
    {
      std::cout<<key<<'\n';
    }
}
я изначально раскидывал слова на ключ и значение.
А по заданию, по сути, требуется поведение std::set (то есть, только ключ)
1
04.03.2022, 15:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.03.2022, 15:31
Помогаю со студенческими работами здесь

Если в строке матрицы элемент повторяется больше 3 раз, изъять его
Есть квадратная матрица, n=100.Если в строке элемент повторяется больше 3 раз, изъять его. После...

Рассчитать стоимость со стоимостью скидки 10% в том случае, если сумма покупки больше 1000 рублей
Написать программу,которая рассчитывает стоимость со стоимостью скидки 10% в том случае,если сумма...

Запускать программу только в том случае, если в компьютере есть флеш-накопитель
Но нужно дополнить программу так, чтоб она запускалась только в том случае, если в компьютере есть...

Строка: Если в этой строке буква "f" встречается только один раз, выведите её индекс
Дана строка. Если в этой строке буква f встречается только один раз, выведите её индекс. Если она...

Из заданной символьной строки выбрать те символы ,которык встречаются в ней только один раз,в том порядке, в котором они встречаются в тексте и в том
Из заданной символьной строки выбрать те символы ,которык встречаются в ней только один раз,в том...

Добавить значение в combobox только в том случае, если его нет уже в списке
Всем доброго времени суток! Подскажите, пожалуйста. Вопрос в следующем: НА форме есть Combobox,...

Border у body работает только в том случае если у него установлено значение float
Резиновый сайт ширина которого от 960 до 1280. По середине лого, ширина которого 100%. Дальше идет...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru