VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 436|回复: 2

c++ unordered_map hash_map 问题

[复制链接]
42_avatar_middle
最佳答案
0 
在线会员 发表于 2021-6-18 19:05:05 | 显示全部楼层 |阅读模式
有点不太明白这是为什么...

c++ unordered_map hash_map 问题


  1. struct  char_cmp
  2. {
  3.         bool operator()(const char* a, const char* b)const
  4.         {
  5.                 return strcmp(a, b) == 0;
  6.         }
  7. };
  8. struct Hash_map
  9. {
  10.         int operator()(const char* str)const
  11.         {
  12.                 int seed = 131;
  13.                 int hash = 0;
  14.                 while (*str)
  15.                 {
  16.                         hash = (hash * seed) + (*str);
  17.                         str++;
  18.                 }
  19.                 return hash & (0x7FFFFFFF);
  20.         }

  21. };
  22. class ScriptManager {
  23. public:
  24.         void GetAbsolutePath(LPCSTR szFile, char* szPath, int nSize) {
  25.                 //相对路径
  26.                 GetCurrentDirectory(nSize, szPath);
  27.                 strcat(szPath, "\");
  28.                 strcat(szPath, szFile);
  29.                 strupr(szPath);
  30.         }

  31.         void RegisterSink(LPCSTR szFile) {
  32.                 char szPath[MAX_PATH] = { 0 };
  33.                 GetAbsolutePath(szFile, szPath, MAX_PATH);
  34.                 m_ScriptTable.emplace(szPath, (char*)"00000");
  35.                 m_hst.emplace(szPath, (char*)"00000");
  36.         }
  37.         unordered_map<const char*, char*, Hash_map, char_cmp> m_ScriptTable;
  38.         map<char*, char*> m_st;
  39.         hash_map<char*, char*> m_hst;
  40. };

  41. int main()
  42. {
  43.         char szPath[MAX_PATH] = { 0 };
  44.     int nSize = 260;
  45.     LPCSTR szFile = "abcde.fg";
  46.        
  47.         ScriptManager scriptManager;

  48.         scriptManager.GetAbsolutePath(szFile, szPath, nSize);
  49.        
  50.         scriptManager.RegisterSink(szFile);

  51.         auto it = scriptManager.m_ScriptTable.find(szPath);

  52.         GetCurrentDirectory(nSize, szPath);
  53. }
复制代码




上一篇:结构体数组与指针
下一篇:不知道A和D应该选哪个,求助一下蟹蟹
42_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-6-18 19:06:06 | 显示全部楼层
不明白是哪一个环节出了问题
96_avatar_middle
最佳答案
0 
donate_vip 发表于 2021-6-20 01:15:33 | 显示全部楼层
先说下你这个程序功能是什么
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2021-9-27 07:01

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表