C++中的字典功能如何实现 stl中的 map,很好用,不过是消耗空间为代价 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 其实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 = "";} 可以使用CMapStringToString更理想的应该根据自己的需要,设计类来处理毕竟排序、查询、动态元素的管理是c语言入门的必学技! C++中有CMap等,来建立映射关系,实现字典 返回运行当前线程的CPU核 好久没散分了,散个分,周一结账。 日本技术签证,犹豫不决,顺便散分 小弟不是网络高手,今天突然想到一个问题望指教 如何解决被覆盖部分的重画问题 属性页的标题如何设置上下两行显示 怎样使线程结束自己? 如何让一个对话框的MFC程序最小化后显示为托盘? 请问如何在多个CPP文件中包含一个.h文件? 菜鸟请教.窗口失去焦点的事件是什么的? 多用户操作数据库 连接字串怎么写 具体过程如何 怎么防止锁 ASCII码如何 转换为 浮点数 ,下面转换的原理是什么?
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 = "";
}
毕竟排序、查询、动态元素的管理是c语言入门的必学技!