关键字在C++字典中不断被替换
Key keeps getting replaced in dictionary C++
我正试图在C++中创建一个字典类型的类来取乐,类似于Python中的类,在Python中可以指定键和值(在这种情况下可以是任何类型,包括自定义类)。
for (unsigned int x = 0; x < word.length(); x++) {
if (!map.has_key(word[x])) {
std::cout << "CREATING " << word[x] << std::endl;
map[word[x]] = ics::ArraySet<char>();
map[word[x]].insert(word[x]);
}
for (int y = 0; y < dist; y++) {
std::cout << "HELLO!" << std::endl;
if ((x + y) < word.length())
std::cout << "ADDING " << word[x+y] << std::endl;
map[word[x]].insert(word[(x + y)]);
if ((x - y) >= 0)
map[word[x]].insert(word[(x - y)]);
}
}
出现的问题是我的钥匙一直被替换。我试图找到当前字母"x"范围内的字母。我将这些附近的键附加到一个集合中,这是我的字典在这种情况下的值。
例如:附近(赛车,2)
应该返回一个值如下的字典。。。
字典('r'->{r,a,c},'a'->{r,c,e},…)
然而,
if (!map.has_key(word[x]))
不断地失败,我的钥匙每次都会随着布景一起被重新创建。
您认为缩进意味着不存在的代码结构的典型错误
if ((x + y) < word.length())
std::cout << "ADDING " << word[x+y] << std::endl;
map[word[x]].insert(word[(x + y)]);
但是,语句map[word[x]].insert(word[(x + y)]);
不受if
的影响。
在此处的两个语句周围添加大括号{}
。
相关文章:
- 模板参数替换失败,并且未完成隐式转换
- 如何用转义符替换字符串中的所有特殊字符
- 为什么除非添加括号,否则构造函数上的模板替换会失败?
- 在一个读写器队列中,我可以用volatile替换原子吗
- 用符号版本替换对函数的所有调用
- 如何通过替换顺序代码的while循环来添加OpenMP for循环
- 替换基于地图的所有引用
- 按平均值替换数组中的元素
- 我可以在这里替换什么,因为我不能在 C# 中使用隐式变量的 lambda 函数?
- 如何将字节数组元素替换为修改的十六进制 ASCII 符号?
- 初始化 std::vector 替换为单大括号而不是双大括号
- 删除/替换C++字符串中的多字符 (ÿû)
- 将 malloc 替换为数组
- 如何替换此示例代码片段中已弃用的handler_type_t或 boost::asio::handler_type?
- 如何在C++中用'\'替换''来处理转义序列?
- 替换密码:哪一个?
- 替换 C++17 中移除的绑定 1st
- 将 Boost MPL 容器替换为 C++17 功能
- C++:如何用单个命令替换复杂的迭代?
- C++ 替换字节数组中项的顺序