Могу ли я получить доступ к элементам в c ++ std :: map по целочисленному индексу?

У меня есть карта элементов, которые я хотел бы выполнить итерацию. Конечно, стандартным способом сделать это было бы использование цикла for с

for (map<string, int> iterator it = myMap.begin(); it != myMap.end(); ++it) {
    string thisKey = it->first;
    int thisValue = it->second;
}

, но если я попытаюсь заставить этот цикл работать параллельно с использованием конструкции OpenMP parallel for , это не будет ' t работает, и это (по-видимому) известная проблема, поскольку он не распознает такого рода конструкции цикла.

Итак, мой план резервного копирования заключался в использовании итератора целочисленного индекса и доступа к списку ключей и значений с помощью index, как я бы сделал в C #, вот так:

for (int i = 0; i < myMap.Count; ++i) {
    string thisKey = myMap.Keys[i];
    string thisValue = myMap.Values[i];
}

... но я не могу найти эквивалентный метод в C ++. Есть ли способ сделать это в C ++, о котором я не знаю?

9
задан Deduplicator 12 October 2018 в 00:18
поделиться