STL MAP관련 질문드립니다.
글쓴이: yoongun35795 / 작성시간: 목, 2014/12/18 - 6:35오후
void Man::printData() { printf("고유번호 : %d\n",m_iseq); printf("이름 : %s\n",m_cname); printf("주민번호 : %s\n",m_cnumber); }
지금 이 부분에 값을 입력하려고 합니다.
AddMan이라는 함수를 써서 값을 insert하려고 합니다.
void jobkorea::AddMan(Man* object) { std::map<int,Man*>::iterator itr; std::map<int,Man*> m_mapMan; int seq; char name[20]; char number[20]; cout<<"고유번호 : "; cin>>seq; cout<<"이름 : "; cin>>name; cout<<"주민등록번호 : "; cin>>number; cout<<endl; Man * Object = new Man(seq, name, number); m_mapMan.insert(make_pair(seq,object)); cout<<itr->second<<endl; }
AddMan이라는 함수에 Map을 써서 입력을 하려고 합니다. 근데 입력한 값이 메모리에 박히지 않습니다.
어떤게 문제인가요 ..?
Forums:
jobkorea::AddMan()함수에서 itr변수에
jobkorea::AddMan()함수에서 itr변수에 대입이 된 값이 없어서 에러가 날 것 같은데 사용하신 소스코드 그대로 올리신 것이 맞나요?
네 맞습니다.
전체적인 소스의 구성은
jobkorea.h
jobkorea.cpp
#include "jobkorea.h"
#include
using namespace std;
jobkorea::jobkorea()
{
}
jobkorea::~jobkorea()
{
}
void jobkorea::AddMan(Man* object)
{
std::map::iterator itr;
int seq;
char name[20];
char number[20];
cout<<"고유번호 : "; cin>>seq;
cout<<"이름 : "; cin>>name;
cout<<"주민등록번호 : "; cin>>number;
cout<
Man * Object = new Man(seq, name, number);
m_mapMan.insert(make_pair(seq,object));
}
void jobkorea::DeleteMan(int seq)
{
std::map::iterator itr;
//int seq = 1;
cout<<"삭제할 고유번호 입력 : "; cin>>seq;
cout<
for(itr=m_mapMan.begin(); itr !=m_mapMan.end(); itr++)
{
if(itr->first==seq)
{
delete itr->second;
itr = m_mapMan.erase(itr);
cout<<"삭제되었습니다."< }
else
itr++;
cout<<"일치하는 번호 없음"< return;
}
}
/*
void jobkorea::DeleteMan(char* name)
{
std::map::iterator itr;
std::map m_mapMan;
char *name = new char[20];
cout<<"삭제할 이름 입력"; cin>>name;
cout<
for(itr=m_mapMan.begin(); itr !=m_mapMan.end(); itr++)
if(itr->second==)
{
itr= m_mapMan.erase(itr);
}
m_mapMan.clear();
}
*/
void jobkorea::FindMan(Man* object)
{
std::map::iterator itr;
int seq;
cout<<"찾을 번호를 입력하세요 : "; cin>>seq;
cout<
for(itr=m_mapMan.begin(); itr !=m_mapMan.end(); itr++)
{
if(itr->first == seq)
{
cout<second< }
}
return;
}
이런식으로 구성해놨습니다.
itr변수에 대입된 값이 없다는게 무슨의미인가요..?
그리고 이 함수가 작동하게 하려면 어떻게 수정해야하나요?
아 Man쪽을 빠트렸네요..
Man.h
이런식으로 구성해놨습니다..
itr은 초기화되지 않은 변수입니다. 즉
itr은 초기화되지 않은 변수입니다. 즉 쓰레기값입니다.
그리고 왜 std::string을 사용하지 않으시나요?
댓글 달기