0 / 0 / 0
Регистрация: 15.05.2012
Сообщений: 200
1

Контейнер map

16.01.2020, 18:00. Показов 774. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Почему нельзя писать route[i]? Строки 4,6.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
bool search(const map<int, set<string>>& route, const set<string>& vstr)
{
    for (int i = 0; i < route.size(); ++i) {
        if (route[i] == vstr.size()) {
            int check = 0;
            for (const auto& item : route[i])
                if (vstr.count(item) == 1)
                    check++;
            if (check == vstr.size())
                return true;
        }
    }
    return false;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.01.2020, 18:00
Ответы с готовыми решениями:

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

Контейнер map
Здравствуйте, работаю с контейнером map, анализирую текст, получаю записи типа &quot;слово: число его...

Контейнер map
Стоит задача реализовать контейнер map. Вопрос возникает при реализации итератора для этого...

Контейнер map ?
Не совсем удается разобраться Не удается разобраться с ассоциативными контейнерами ! Как выглядит...

16
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
16.01.2020, 18:05 2
потому что нет оператора [] для контейнера map
и вы же понимаете что контейнеры это не массивы?
0
6091 / 3449 / 1402
Регистрация: 07.02.2019
Сообщений: 8,768
16.01.2020, 18:07 3
Цитата Сообщение от EvilingDark Посмотреть сообщение
Почему нельзя писать route[i]?
потому что
Цитата Сообщение от EvilingDark Посмотреть сообщение
const
Добавлено через 1 минуту
используй std::map::find и если успешно, то обращайся к second
1
Комп_Оратор)
Эксперт по математике/физике
8949 / 4703 / 629
Регистрация: 04.12.2011
Сообщений: 13,999
Записей в блоге: 16
16.01.2020, 18:10 4
del
1
zayats80888
16.01.2020, 18:12
  #5

Не по теме:

Цитата Сообщение от IGPIGP Посмотреть сообщение
не будет толку
а я даже не смотрел что там сравнивается :)

0
Комп_Оратор)
Эксперт по математике/физике
8949 / 4703 / 629
Регистрация: 04.12.2011
Сообщений: 13,999
Записей в блоге: 16
16.01.2020, 18:15 6
C++
1
route[i] == vstr.size()
множество можно сравнить с размером?
Цитата Сообщение от zayats80888 Посмотреть сообщение
а я даже не смотрел что там сравнивается
я тоже не до конца догнал)
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
16.01.2020, 18:19 7
Цитата Сообщение от AndryS1 Посмотреть сообщение
потому что нет оператора [] для контейнера map
https://en.cppreference.com/w/... perator_at
1
0 / 0 / 0
Регистрация: 15.05.2012
Сообщений: 200
16.01.2020, 18:23  [ТС] 8
Как перебирать в set<string> по ключу? Строка 6

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
bool search(const map<int, set<string>>& route, const set<string>& vstr)
{
    for (int i = 0; i < route.size(); ++i) {
        if (route.count(i) == vstr.size()) {
            int check = 0;
            for (const auto& item : route.find(i))
                if (vstr.count(item) == 1)
                    check++;
            if (check == vstr.size())
                return true;
        }
    }
    return false;
}
0
6091 / 3449 / 1402
Регистрация: 07.02.2019
Сообщений: 8,768
16.01.2020, 18:31 9
Цитата Сообщение от EvilingDark Посмотреть сообщение
if (route.count(i) == vstr.size())
route.count(i) вернет либо 1 либо 0, причем здесь vstr.size()?

Добавлено через 2 минуты
скажите что должна делать эта функция, искать множество vstr среди значений route?
0
0 / 0 / 0
Регистрация: 15.05.2012
Сообщений: 200
16.01.2020, 18:36  [ТС] 10
Цитата Сообщение от zayats80888 Посмотреть сообщение
скажите что должна делать эта функция, искать множество vstr среди значений route?
C++
1
2
3
4
5
6
7
8
9
10
int search(const map<int, set<string>>& route, const set<string>& vstr)
{
    for (int i = 0; i < route.size(); ++i) {
        if (route.at(i).size() == vstr.size()) {
            if(route.at(i)==vstr)
                return i;
        }
    }
    return -1;
}
Вроде правильно теперь. На 4 строке надо сравнить размер set<string> из route и vstr.
На 6 сравнить их.
0
6091 / 3449 / 1402
Регистрация: 07.02.2019
Сообщений: 8,768
16.01.2020, 18:41 11
EvilingDark,
C++
1
2
3
4
5
6
7
8
int search(const map<int, set<string>>& route, const set<string>& vstr)
{
    for (auto&& p : route)
    {
        if (p.second == vstr) return p.first;
    }
    return -1;
}
Добавлено через 1 минуту
Цитата Сообщение от EvilingDark Посмотреть сообщение
route.at(i)
этот метод бросает исключение, забудьте про него

Не по теме:

жесть как форум тупит

0
фрилансер
5495 / 5091 / 1047
Регистрация: 11.10.2019
Сообщений: 13,315
16.01.2020, 22:25 12
Цитата Сообщение от AndryS1 Посмотреть сообщение
потому что нет оператора [] для контейнера map
таки есть )
0
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
17.01.2020, 00:34 13
Цитата Сообщение от Алексей1153 Посмотреть сообщение
таки есть )
ну в любом случае используется не так как в примере..
0
фрилансер
5495 / 5091 / 1047
Регистрация: 11.10.2019
Сообщений: 13,315
17.01.2020, 00:41 14
AndryS1, да, там две ошибки - отсутствие нужного оператора сравнения и константность мапы
0
0 / 0 / 0
Регистрация: 15.05.2012
Сообщений: 200
17.01.2020, 03:16  [ТС] 15
Цитата Сообщение от zayats80888 Посмотреть сообщение
for (auto&& p : route)
а зачем 2 ссылки?
0
Модератор
2637 / 1750 / 919
Регистрация: 16.10.2013
Сообщений: 5,065
Записей в блоге: 14
17.01.2020, 05:14 16
EvilingDark, там и без двух ссылок по идее должно сработать
0
6091 / 3449 / 1402
Регистрация: 07.02.2019
Сообщений: 8,768
17.01.2020, 10:15 17
Цитата Сообщение от EvilingDark Посмотреть сообщение
а зачем 2 ссылки?
это forwarding reference
0
17.01.2020, 10:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.01.2020, 10:15
Помогаю со студенческими работами здесь

Контейнер map
подскажите пожалуйста, как можно заполнить контейнер map с клавиатуры ?

Контейнер map
в программе используется ассоциативный массив, идентификатором которого являются символы проблема...

Контейнер map
Cоздать ассоциативный список имен (ключей), телефонов. Осуществить поиск по именам. Дополнить...

контейнер map
Помогите, пожалуйста дописать программу. Определите карту, в которой ключом является фамилия семьи,...


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

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

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