MFC_CMAP使用

void C例子MAP和LISTDlg::OnBnClickedButton3()
{
    CMap<CString,LPCTSTR,int,int&> map;
    TCHAR buff[1024];//作为进制转换的结果放在里面
    for(int i=0;i<16;i++){

        //用16进制作为map的key
        //整数到16进制,咱们就联想到_itot
        memset(buff,0,sizeof(TCHAR));//清空数组
        _itot(i,buff,16);//转换成16进制
        CString f = buff;
        map.SetAt(f,i);
    }

    //接下来进行打印

    //for(int i=0;i<map.GetCount();i++){

    //    
    //    //把i转换成咱们的16进制
    //    memset(buff,0,sizeof(TCHAR));//清空数组
    //    _itot(i,buff,16);//转换成16进制
    //    CString f = buff;
    //    int a;
    //    map.Lookup(f,a);
    //    CString str;
    //    str.Format(_T("第一个值是%d\r\n"),a);
    //    AfxMessageBox(str);
    //}

    POSITION position = map.GetStartPosition();//相当于获得了一个迭代器

    CString key;
    int value1;
    while(position){
        map.GetNextAssoc(position,key,value1);//获取map的下一个月元素,他会把迭代器指向下一个元素
        CString s;
        s.Format(_T("key=%s,value=%d"),key,value1);
        AfxMessageBox(s);
    }
}

好像还有个类:CMapStringToString,这个没试过

posted @ 2013-08-10 17:04  宝贝,我永远都在  阅读(432)  评论(0)    收藏  举报