2015-05-07 3 views
-1

У меня проблема с моей программой. Я получаю сообщение об ошибке, когда он достигаетstd :: pair used in std :: map

cout << it->second << endl; 

Моя программа:

#include <iostream> 
#include <map> 
#include <algorithm> 
using namespace std; 

int main() { 
    map<pair<int, int>, int> kwadraty; 
    long long ile; 
    cin >> ile; 
    int temp1, temp2; 
    for(int i = 0; i < ile; i++) 
    { 
     cin >> temp1 >> temp2; 
     kwadraty[pair<int, int>(temp1, temp2)]++; 
    } 

    for(map<pair<int, int>, int>::iterator it; it != kwadraty.end(); it++) 
    { 
     cout << it->second << endl; 
    } 

    return 0; 
} 

Может кто-нибудь увидеть, где проблема?

+3

Я вижу одну проблему: вы не сказали нам, что ошибка. –

+1

Я рекомендую хотя бы 'std :: make_pair' вместо' pair (...) ', но так как это C++ 11,' kwadraty [{temp1, temp2}] 'будет делать. Кроме того, вместо 'map , int> :: iterator', просто используйте' auto'. – chris

ответ

5

Вы забыли инициализировать итератор:

for(auto it = kwadraty.begin(); it != kwadraty.end(); it++) 
      ^^^^^^^^^^^^^^^^^^ 
+0

Спасибо. Дурак я :/ –

Смежные вопросы