본문 바로가기
프로그래밍

👨‍💻 [MFC] MFC 에서 std::map 의 Key 목록을 얻으려면 어떻게 하나요?

by 밝음의기둥 2024. 9. 20.
반응형

👨‍💻 안녕하세요, 윌리 프로젝트의 윌리 입니다.

MFC에서 std::map 을 사용할 때 Key 목록을 얻으려면 어떻게 하는지 알아보았습니다.


질문 >

MFC 에서 std::map 의 Key 목록을 얻으려면 어떻게 하나요?

답변 >

MFC에서 std::map의 키 목록을 얻으려면, std::map의 반복자(iterator)를 사용하여 맵 전체를 순회하면서 각 키를 추출할 수 있습니다. 이 작업을 위해 begin()과 end() 반복자를 사용하여 std::map의 모든 키를 순차적으로 접근할 수 있습니다.

예시 코드

다음은 std::map의 키 목록을 추출하여 MFC에서 사용할 수 있는 방법의 예입니다.

#include <map>
#include <string>
#include <afxwin.h>  // MFC 헤더 파일
#include <vector>

void GetMapKeys()
{
    // std::map 선언 및 초기화
    std::map<int, std::string> myMap;
    myMap[1] = "Value 1";
    myMap[2] = "Value 2";
    myMap[3] = "Value 3";

    // 키 값을 저장할 벡터
    std::vector<int> keys;

    // std::map의 모든 키를 추출
    for (auto it = myMap.begin(); it != myMap.end(); ++it)
    {
        keys.push_back(it->first);  // 키를 벡터에 저장
    }

    // 추출된 키를 출력
    CString msg;
    msg.Append(_T("키 목록: "));
    for (size_t i = 0; i < keys.size(); ++i)
    {
        CString keyStr;
        keyStr.Format(_T("%d "), keys[i]);
        msg.Append(keyStr);
    }

    AfxMessageBox(msg);
}

설명:

  1. std::map의 반복자 사용: std::map에서 키와 값을 접근할 때 begin()과 end() 반복자를 사용합니다. 반복자를 통해 각 요소에 접근할 수 있습니다.
    • it->first: 반복자가 가리키는 현재 요소의 키입니다.
    • it->second: 반복자가 가리키는 현재 요소의 값입니다 (이번 예시에서는 값이 필요하지 않으므로 사용하지 않았습니다).
  2. 키 저장: keys라는 벡터를 사용하여 모든 키를 저장합니다. 벡터에 키 값을 추가하기 위해 push_back을 사용합니다.
  3. 결과 출력: 추출된 키 목록을 CString을 사용하여 MFC의 메시지 박스에 출력합니다.

요약:

  • std::map의 키 목록을 얻으려면, begin()부터 end()까지 반복자를 사용하여 first 값을 추출합니다.
  • 추출한 키 값을 필요에 따라 벡터와 같은 컨테이너에 저장하고, 이후 처리하거나 출력할 수 있습니다.

이 방법은 MFC에서 std::map의 키 값을 얻고 처리하는 데 유용하게 사용할 수 있습니다.


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


🎬 유튜브 채널 🎬

 

위로그@WiLog

📢 안녕하세요, 위로그@WiLog 시청자 여러분, 저는 윌리 입니다. 📢 위로그@WiLog 는 자기주도학습을 목적으로 라이브 스트리밍을 합니다. 📢 1인 게임 개발을 목표로 Unreal과 Blender를 학습 중입니

www.youtube.com

🎬 치지직 채널 🎬

 

위로그 채널 - CHZZK

지금, 스트리밍이 시작됩니다. 치지직-

chzzk.naver.com


반응형