C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[73910] STL map 관련해서 도움을 얻고자합니다..
kaen [mikaen2891] 4275 읽음    2016-10-17 19:09
선배님들 안녕하십니까

현재 공과대학 4년재에 재학중인 4학년 학생입니다.

MFC로 CListCtrl에 프로세스 목록이 갱신되는 것을 구현하기 위해

처음에는 vector를 썼으나, 데이터를 지우는 것이 용이하지 않다고 하여

map을 쓰라고 하여... 바꾸게 되었고

map에 관해 도무지 자료를 찾기가 힘들어서 선배님들의 도움을 얻고자 합니다..

우선 헤더부분에 제가 정의한 구조체는

typedef struct ProcessMap
{
    //boolean Survival;
    CString FileName;
    int PPID;
    int PID;// Key
    CString Path;
} _ProcessMap;

입니다.

지금부터가 문제입니다.
본문에 프로세스 값 구하는 쪽에서

map<int, _ProcessMap>mymap; //이렇게 선언하였습니다.(  <Key, Value> )

그런데 저는 Key인 PID에 따라 나중에 비교하려고 저렇게 구조체를 선언하였으나,

map의 pair는 한 쌍 밖에 안되기도 하고, PID값에 따라 저것들을 어떻게 집어넣을지가 도무지 모르겠습니다..

제가 한것은 이렇습니다.
(여기서 pe32. 기타 등등은 PROCESSENTRY32와 CreateToolhelp32Snapshot로 얻었습니다.)
_ProcessMap _ProcessMap2;
_ProcessMap2.FileName = (LPCTSTR)pe32.szExeFile;
_ProcessMap2.PPID = pe32.th32ParentProcessID;
_ProcessMap2.PID = pe32.th32ProcessID;
_ProcessMap2.Path = strPath;

pair<int, _ProcessMap> NewItem(pe32.th32ProcessID, _ProcessMap2);

mymap.insert(NewItem);

이렇게 까지 해줬는데 컴파일은 안해봤으며, 값이 제대로 들어있는지도 아직 모르겠습니다..

여기서 받은 값들을 리스트컨트롤에 보이도록 CListCtrl에 출력을 해줘야하는데

i=0;
for (map<int, _ProcessMap>::iterator k = mymap.begin(); k != mymap.end(); advance(k, 1))
        {
            m_ProcessLIst.InsertItem(i, );
        }

여기에서 어떻게 출력을 해야할지 난해합니다..

혹시 저랑 비슷한 경험을 겪으셨거나,

STL Map 에서 구조체를 Map에 선언에 대해 도와주실분은 부탁드리겠습니다...ㅜ.ㅜ

+ -

관련 글 리스트
73910 STL map 관련해서 도움을 얻고자합니다.. kaen 4275 2016/10/17
73911     Re:STL map 관련해서 도움을 얻고자합니다.. 송신영 4508 2016/10/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.