작성
·
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;
}