• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

C++ STL Map

21.02.04 18:59 작성 조회수 215

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;
}