Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
2 / 2 / 0
Регистрация: 27.11.2021
Сообщений: 129

Декомпозиция map

02.02.2023, 14:39. Показов 1881. Ответов 26

Студворк — интернет-сервис помощи студентам
Добрый день. Имеется задание:
///Задание 3. Создайте и заполните значениями
//map двумя способами (3а и 3б) таким образом, чтобы он содержал
//в качестве ключа букву, а в качестве значения
//отсортированную по алфавиту совокупность слов (string),
//начинающихся с этой буквы Создайте пустой map и используйте заданный массив
//для выполнения задания.
//С помощью range-based for и structured binding
//распечатайте содержимое, например: A: any, apple, away

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
{
        //дано (например):
        const char* s[] = { "yong", "away", "bar", "any", "son", "apple" };
        map <const char, const string> m;
 
            auto [a, b, y, e, c, d] = s;
 
            m.insert({ a[0],a });
            m.insert({ b[0],b });
            m.insert({ y[0],y });
            m.insert({ e[0],e });
            m.insert({ c[0],c });
            m.insert({ d[0],d });
 
        cout << "A: ";
        for (auto it = m.begin(); it != m.end(); ++it)
        {
            auto [c, s] = *it;
 
            if (c == 'a' || c == 'A')
            {
                cout << s << " ";
            }
        }
        cout << endl;

Выводи только первое слово на "а". Не могу сообразить почему. Подскажите пожалуйста.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.02.2023, 14:39
Ответы с готовыми решениями:

Обращение к элементам vector, который находится в map, находящийся в map
Всем добрый день! Имеется такой контейнер. Как обращаться к элементам вектора и как пушбэчить его? map...

Поместить вектора в map и реализовать перегрузку вывода для map
Всем привет! Нужна помощь в написании программы. У меня есть вот такая прога и мне нужно каким-то образом поместить вектора в map и...

Обращение к map, который внутри другого map
std::map&lt;int, std::map&lt;std::string, int&gt;&gt; m1; std::map&lt;std::string, int&gt; m2; void main() { m1 = m2; m2 = 7; ...

26
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
03.02.2023, 15:12
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от KSergey9 Посмотреть сообщение
тогда и простого map<char, set<string>> не получится, однако такая в смысле идеи структура наверняка будет выигрышнее.
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
#include <iostream>
#include <set>
#include<string>
#include<algorithm>
#include<cctype>//toupper
 
 
using namespace std;
 
struct string_compare_lowercase
{
    bool operator()(string a, string b)
    {
        string first ,second;
        transform(a.begin(), a.end(), first.begin(),
                  [](char c){return std::tolower(c);});
        transform(b.begin(), b.end(), second.begin(),
                  [](char c){return std::tolower(c);});
            return first<second ;
    }
};
 
class MyMapEmulator
{
    public://закрыть и добавить методов не проблема
    using my_set_t =  set<string, string_compare_lowercase >;
    my_set_t m_set;
 
    my_set_t::iterator find (string str_key)
    {
        return m_set.find(str_key);
    }
 
    my_set_t::iterator find (char c)//для эстетов
    {
        string a;
        a+=c;
        return  find(a);
    }
} ;
 
int main()
{
    MyMapEmulator meee;
     meee.m_set.insert("apple");
     meee.m_set.insert("aply");
     meee.m_set.insert("body");
     meee.m_set.insert("buddy");
     meee.m_set.insert("everybody");
     meee.m_set.insert("something");
     meee.m_set.insert("everything");
     auto it=meee.find('a');
     if(it!=meee.m_set.end())
     {
         cout<<*it<<endl;
     }
методы поиска интервалов основанные на upper/lower bound и пр. можно дописать. Я тут не касаюсь cow оптимизаций. Как и регэсп, алгоритмов поиска как таковых и т.д. Строки это то с чего сам Бог начал.
Вначале было const char* ... и оно было у Бога. И оно и было Бог. Емкая тема.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
03.02.2023, 15:44
IGPIGP, объясните, к чему ваш пост №11.
Да и все остальные. А то я не уловил.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
03.02.2023, 22:19
Цитата Сообщение от SmallEvil Посмотреть сообщение
Да и все остальные. А то я не уловил.
Не мучайтесь. Бывает.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
03.02.2023, 22:41
IGPIGP, ну и лады. И вам не хворать.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
03.02.2023, 23:12
Цитата Сообщение от SmallEvil Посмотреть сообщение
IGPIGP, ну и лады. И вам не хворать.
SmallEvil, если бы вы спросили конкретно, я бы ответил, но ваш вопрос выражает общее недоумение. Что же я могу сделать? Объяснять что идеальное использование в словаре пары ключ-значение подразумевает внешнюю связь в паре. Если таковая вычислима однозначно, то уже нет смысла в мапе. Хеши для хэш структур - формальны и неоднозначны.
Предельно тупое использование мап это когда ключом является само значение или его трансформация. Например пара:
<"string">, "string"> или пара <"STRING", "string"> применимы в map но это достаточно тупой оверхэд. Использовать первую букву как ключ к хранению строки/строк это та же песня. Первая буква у них уже есть.
Последний пост показал насколько проще структура и алгоритм для применения пар - <первый символ, строка>, еслши в реализации использовать set. Там всё прозрачно. SmallEvil, низкие зарплаты и дешёвая закусь не оправдания для тупых заданий. Преподавателям нужно платить больше, но больше и требовать. Глядишь, и появятся во власти люди с мозгами. Хотя бы и лет через 100.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
03.02.2023, 23:24
IGPIGP, значит я не прозрачно выразился.
Суть ваших постоя я уловил.
Я не понимал зачем они именно здесь, в конкретном топике.
Ну из последних предложений поста №25 стало понятно.
Но до этого не было.
Остался еще вопрос, кому адресованы ваши размышления ?
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
04.02.2023, 00:22
Цитата Сообщение от SmallEvil Посмотреть сообщение
Остался еще вопрос, кому адресованы ваши размышления ?
Людям трезвого ума и доброй воли.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.02.2023, 00:22

Декомпозиция массива
Добрый день. Пытаюсь сделать декомпозицию массива. int ar = { 1,2 }; auto = ar; Выдаёт ошибку, что переменная не определена....

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

Наследование, иерархия, коллекция, декомпозиция
Суть предельно проста: декомпозиция объектов; объект класса base содежит имя(char name) и указатель на двунаправленный список указателей...

Возможно ли создать контейнер std::map, в котором в качестве значения была бы ссылка на std::map?
Здравствуйте. Возможно ли создать контейнер std::map, в котором в качестве значения была бы ссылка на std map? Например: std::map...

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


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 25.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 25.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 22.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru