인프런 커뮤니티 질문&답변

LEETO님의 프로필 이미지
LEETO

작성한 질문수

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

[잠깐지식] STL map 자료구조 활용

C++ STL Map

작성

·

315

0

struct Inform
{
	string id;
	string nick;
	vector<string> record;
      
        //셍상지
	Inform(string _id, string _nickName, string _record): id(id), nick(nickName)
	{
		record.push_back(_record);
	}

};


int main()
{
	map<string, Inform> m;
        m.insert(pair<string, Inform>("hello",Inform("123","222","333")));
        cout << m["hello"].nick << endl;

}

제가 map의 value값에 구조체를 넣어서 출력할려고 하는데 
cout << m["hello"].nick << endl; 이부분을 주석 안하고 실행하면 팝업창이 뜨면서 오류납니다... 
어떤게 문제인지 잘 모르겠어요...
생성자가 분명히 호출잘됐는데 왜 접근을 못하는걸까요??..
 

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

저도 구조체를 맵에 사용하본적이 없어서 모르겠지만, 구글링해보니 생성자로는 안되고 포인터를 써서 하는 것 같습니다.

저는 그냥 아래처럼 하니까 되기는 합네요.

#include<bits/stdc++.h>
using namespace std;
struct Inform
{
	string id;
	string nick;
};


int main()
{
	map<string, Inform> m;
	Inform tmp;
	tmp.id="st";
	tmp.nick="dkdk";
		
    m.insert(pair<string, Inform>("hello", tmp));
    cout << m["hello"].nick << endl;
}

LEETO님의 프로필 이미지
LEETO

작성한 질문수

질문하기