gpt4 book ai didi

c++ - 在C++中将字符串散列为整数

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:06:21 24 4
gpt4 key购买 nike

我想弄清楚字符串到整数的转换过程。我们正在做一个带散列的程序,其中要散列的键值是一个状态的名称。根据我的研究,atoi() 似乎不起作用。

我是否需要分解单词的每个字母并单独转换?我使用 ASCII 码吗?我是否完全走错了方向?

我很迷茫,所以任何信息都会很棒。谢谢!

最佳答案

C++11 引入了一个名为 std::hash 的实现定义的哈希函数在标题中 <functional>它具有字符串类的特殊性std::string , std::wstring

就这么简单:

#include <iostream>
#include <functional> //for std::hash
#include <string>

int main() {
std::string str = "Hello World";
std::hash<std::string> hasher;
auto hashed = hasher(str); //returns std::size_t
std::cout << hashed << '\n'; //outputs 2146989006636459346 on my machine
}

专业std::hash对于您的用户定义类型也不是很复杂。但是请注意,没有 std::hash特化const char*或任何 C 字符串。

关于c++ - 在C++中将字符串散列为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16075271/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com