Как я могу получить значение с карты по ключу? У меня есть вектор ints A
, и у меня есть карта. Я хочу напечатать M[1]
, но я не понимаю, как я могу это сделать, потому что я получил сообщение об ошибке:Как получить значение с карты по ключу
error: invalid operands to binary expression ('ostream' (aka 'basic_ostream<char>') and 'mapped_type' (aka 'std::__1::pair<int, int>'))
cout << M[1];
~~~~^~~~~
Мой код:
Типint main() {
vector<int> A;
map<int, pair<int,int> > M;
FOR(i,1,maxN) {
pair<int,int> p;
p.first = 1;
p.second = 2;
M[i] = p;
}
FOR(i,0,t) {
int x = A[i];
cout << M[x] << endl;
}
return 0;
}
Может быть, попытаться получить, если первый, а затем попытайтесь напечатать его, и посмотреть, что идет не так. Подсказка: это не получение. – juanchopanza
Похоже, что оператор '<<' не был перегружен для работы с 'std :: pair' –
Я не уверен, что вы сделали для ваших циклов for, но, пожалуйста, не используйте '# define', чтобы сделать C++ выглядят как другие языки. Вы только путаете себя и других. Действительно ли так сложно написать 'for (int i = 0; i