所以在开始时我有一个unordered_map,其中一个int作为键,字符串作为用256个ASCII字符初始化的值,但后来我发现自己需要在dictionnary中搜索一个字符串,但我不能使用map ::发现因为我的密钥是一个int。 所以这是我的问题如何在无序地图中搜索特定值?或者我应该如何修改此方法来初始化unordered_map中的所有ASCII字符,其中键是一个字符串,我可以使用map :: find?
void InitDico (unordered_map<int,string>& Dico){
Dico.clear();
for (int i = 0; i < 256; ++i)
{
Dico[i] = (char)i;
}}
我尝试了什么:
void InitDico (unordered_map<string,int>& Dico){
Dico.clear();
for (int i = 0; i < 256; ++i)
{
Dico.insert({(char)i , i});
}}
答案 0 :(得分:1)
std::string
有一个构造函数,它接受一个计数和一个char
,并构造一个char
的计数重复字符串。
It is implementation-defined whether a char
object can hold negative values.
void InitDico2(std::unordered_map<std::string,int>& Dico) {
Dico.clear();
for (unsigned char c = 0; c < 256; c++)
{
Dico[{1, c}] = c;
}
}
答案 1 :(得分:0)
所以坦克超级我做到了,我做了一个非常愚蠢的错误....所以这里是代码:
void InitDico2(unordered_map<string,int>& Dico) {
Dico.clear();
string s ="";
char c;
for (int i = 0; i < 256; i++)
{
c = (char)i;
s += c;
Dico[s] = i;
s.clear();
}}