C++中的字典功能如何实现

Mark76123 2009-06-10 10:36:07
在VC中如何实现字典功能,就是我输入一关键字,能找到它对应的信息,如果有人了解Python,那就是想实现像Python中的字典功能一样,如下的定义:

Dictionary1 = {
"小王":"800830200",
"小杨":"800830201",
"小红":"800830202"
}
然后这样就可以轻松取值:
TelNo = Dictionary["小王"] // 得到小王所对应的电话号码,放在字符串变量TelNo中.

在Python中像那样就可以实现了,挺简单的,所以想在VC中也能那样做一个表就可以了. 如果这个表的项目很多,用Switch及if之类的就实在太麻烦了,请问那位有更好的办法?
...全文
1130 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mark20060606 2009-06-17
  • 打赏
  • 举报
回复
永远支持回答问题,详细,具体,你讲的话要让别人能听懂才是目的。都是讲一半还要猜一半,真没意思 。
oyljerry 2009-06-11
  • 打赏
  • 举报
回复
C++中有CMap等,来建立映射关系,实现字典
lijiawlm 2009-06-11
  • 打赏
  • 举报
回复
Map!!
是个好方法
ok1234567 2009-06-11
  • 打赏
  • 举报
回复
可以使用CMapStringToString

更理想的应该根据自己的需要,设计类来处理
毕竟排序、查询、动态元素的管理是c语言入门的必学技!
w29468 2009-06-11
  • 打赏
  • 举报
回复
STL, std::map
雪碧爱可乐 2009-06-10
  • 打赏
  • 举报
回复
其实stl中的map便可实现,包装一下就成了;

简单给你写成一个类:

typedef std::map <CString, CString> mapStrToStr;
class Dict
{
public:
Dict(){}
~Dict(){
if (!m_map.empty()) m_map.clear()
}
//查找词条
LPCSTR LookUp(LPCSTR lpszKey) {
mapStrToStr::iterator keyFound;
keyFound = m_map.find(sKey);
if (keyFound != m_map.end())
return ((*keyFound).second).c_str();
else
return NULL;
}
//插入“关键串-串值”至参数词典,即是插入词条
void Insert(LPCSTR lpszKey, LPCSTR lpszValue){
m_map.insert(mapStrToStr::value_type(lpszKey, lpszValue));
}
private:
mapStrToStr m_map;
}
// 以上代码,均是直接写,未经过调试。请调试后,修改确定无误,再使用。
// 举例
main () {
Dict dict;
dict.insert("小王", "800830200");
dict.insert("小杨", "800830201");
dict.insert("小红", "800830202");
CString sNo;
sNo = dict.LookUp("小王"); // 如果有记录,则sNo= "800830200", 否则 sNo = "";
}



gxhzippo 2009-06-10
  • 打赏
  • 举报
回复
stl中的 map,很好用,不过是消耗空间为代价
neohope 2009-06-10
  • 打赏
  • 举报
回复
1用define
2.enum

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧