int getHammingDistance(const std::bitset<352>& shot1, const std::bitset<352>& shot2) { int distance = 0; for (int i = 0; i < 256; i++) { distance += (shot1[i] != shot2[i]); } return distance; } int getL1HammingDistance(const std::bitset<352>& shot1, const std::bitset<352>& shot2) { int distance = 0; for (int i = 0; i < 352; i++) { distance += std::abs((int)shot1[i] - (int)shot2[i]); } return distance; }getHammingDistance本地函数定义是非法的
时间: 2024-01-25 17:04:04 浏览: 65
Bitwise-trie:按位trie的C++实现
这个错误通常是因为你的代码中存在语法错误或语句错误。在这个错误中,代码似乎已经正确地声明和定义了两个函数,但是在这两个函数之后似乎又出现了一些无关的代码,导致编译器无法识别。
你可以尝试将这些无关的代码移到函数之外,或者在函数之后添加一个分号来结束它们的语句。例如:
```cpp
int getHammingDistance(const std::bitset<352>& shot1, const std::bitset<352>& shot2) {
int distance = 0;
for (int i = 0; i < 256; i++) {
distance += (shot1[i] != shot2[i]);
}
return distance;
}
int getL1HammingDistance(const std::bitset<352>& shot1, const std::bitset<352>& shot2) {
int distance = 0;
for (int i = 0; i < 352; i++) {
distance += std::abs((int)shot1[i] - (int)shot2[i]);
}
return distance;
}
// 无关代码移到函数之外,或者添加分号来结束语句
int main() {
// ...
return 0;
}
```
如果你仍然遇到问题,请提供更多的代码和错误信息以便更好地帮助你。
阅读全文