Обращение к элементам map, если map содержится в vector

257
26 января 2019, 05:20

Есть такой код:

vector < map<int, int> > f;
map<int, int> f1 = { {0,0}, {5,8},{10,12},{15,16},{20,22}};
map<int, int> f2 = { { 0,0 },{ 5,6 },{ 10,12 },{ 15,16 },{ 20,25 } };
map<int, int> f3 = { { 0,0 },{ 5,10 },{ 10,14 },{ 15,18 },{ 20,25 } };
map<int, int> f4 = { { 0,0 },{ 5,7 },{ 10,10 },{ 15,20 },{ 20,23 } };
f.push_back(f1);
f.push_back(f2);
f.push_back(f3);
f.push_back(f4);

Как обращаться к элементам map в vector? А и именно - к ключу и значению в map?

Answer 1

Сначала обращаемся к элементу вектора

f[1]

получив map, ну, а потом - к его элементу:

f[1][10] == 14

Примерно так. Можно использовать член .at().

О перечислении всех элементов в отображении в векторе - например,

for(const auto& p : f[1]) 
    cout << p.first << "  " << p.second << endl;

Или во всех векторах

for(const auto& v: f)
    for(const auto& [key,value]: v)
        cout << key << " - " << value << endl;
READ ALSO
Как выводить 0.25 как 0.250000?

Как выводить 0.25 как 0.250000?

У меня есть число типа doubleМне нужно, чтобы, если оно равно, скажем, 0

251
У меня есть натуральное число? [закрыт]

У меня есть натуральное число? [закрыт]

Есть натуральное число которое вводится с клавиатурыНужно узнать количество его цифр кратных z1,z2,z3

222
Напечатать двумя циклами числа?

Напечатать двумя циклами числа?

Как циклом такое напечатать 10 20 20 30 30 30 40 40 40 40 50 50 50 50 50

195
Как считать массив чисел в c++?

Как считать массив чисел в c++?

недавно начал учить с++, до этого изучал python, столкнулся с таким вопросомКак правильно в c++ считать строку, состоящую из целых чисел, количество...

226