Вложенный цикл foreach с указателями? - PullRequest
0 голосов
/ 31 мая 2018
map<string, vector<int>*> settings
for (auto el : settings)
    {
        for(auto i : el)
        {
            cout << i;
        }
    }

Я понял, что внутри el: для этого оператора for, основанного на диапазоне, требуется подходящая функция begin, и ничего не найдено.Как я могу это исправить?

1 Ответ

0 голосов
/ 31 мая 2018

При использовании

map<string, vector<int>*> settings
for (auto el : settings)
{
}

el представляет собой std::pair<const string, vector<int>*>.Проверьте определение std::map::value_type на cppreference.com .

Чтобы получить элементы из вектора, вам нужно будет использовать

map<string, vector<int>*> settings
for (auto el : settings)
{
   for ( auto item : *(el.second) )
   {
       // Use item
   }
}

.ненужное копирование std::pair, вы можете использовать auto const& el.

map<string, vector<int>*> settings
for (auto const& el : settings)
{
   for ( auto item : *(el.second) )
   {
       // Use item
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...