2014-09-17 2 views
-2

지도에서 키와 값을 인쇄하려고합니다. 콘솔에서 출력을 얻지 못해서 무엇이 빠졌는지 모르겠습니다. 따라서 뭔가 잘못되었습니다.std :: map 인쇄하기

#include <iostream> 
#include <map> 

using namespace std; 

typedef map<string, int> employees; 


int main(void) 
{ 
    employees object; 
    employees ref; 
    employees &m = ref; 
    employees::const_iterator it; 

    object["GREG"] = 1000; 
    object["ROBERT"] = 2000; 

    for(it = m.begin(); it != m.end(); ++it) 
    { 
     cout << "Key" << it->first << "Key value: " << it->second << endl; 
    } 
} 

나는 직원이라는 MAP에 대한 참조로 엉망 수있는 한 추측, 아마도 내가 어쩌면 덜 '바보, 어떻게 든 중 하나가 작동하지 않는 (이 솔루션을 시도해야 ... 그러나한다 접근 ') :

for(it = employees.begin(), it != employees.end(), ++it) 
{ 
    employees::const_iterator it; 
} 
+1

'ref [ "GREG"] = 1000; ref [ "ROBERT"] = 2000;'' –

+1

'#include '이 필요합니다. – juanchopanza

+2

ref에 값을 추가하지만 비어있는 인쇄 객체 –

답변

0

당신은 object 변수에 직원을 추가하지만, ref 변수를 덤프합니다. 당신이하려고하는 것을보기가 어렵습니다. refm이 필요한 이유는 무엇입니까? 그냥 refm 변수를 제거하고 for() 찾는 object를 사용하는 경우 그것은 당신이 어떤 요소를 포함하지 않는 이상 반복되는

3

지도를 작동합니다. 루프는 다음과 같습니다

for(it = m.begin(); it != m.end(); ++it) 

하지만 당신은 참조와 체조가 필요한 이유를 모르겠어요 혹시 채울 수있는 유일한지도는

object["GREG"] = 1000; 
object["ROBERT"] = 2000; 

이지만,이 코드의 개체를 인쇄하여 코드 : 다른 사람에 의해 주어진 답은 그렇다

#include <iostream> 
#include <map> 

using namespace std; 

typedef map<string, int> employees; 


int main(void) 
{ 
    employees object; 
    employees::const_iterator it; 

    object["GREG"] = 1000; 
    object["ROBERT"] = 2000; 

    for(it = object.begin(); it != object.end(); ++it) 
    { 
     cout << "Key " << it->first << " Key value: " << it->second << endl; 
    } 

} 
0

, 그것은을위한 범위 루프를 사용하는 것을 고려 가치 :

for (const auto &emp : object) 
{ 
    cout << "Key " << emp.first << " Key value: " << emp.second << endl; 
}