代碼中定義了 hash 函數和 next 數組,編譯報錯提示重複定義或模板匹配失敗。
C++11 標準庫 <functional> 引入 std::hash 模板,<iterator> 引入 std::next 模板。若代碼中 using namespace std; 並定義同名標識符,發生名稱衝突。
using namespace std;,改用 std::vector 等完全限定名。hash → myHash,next → nextNode 或 link。
// 錯誤代碼
using namespace std;
int hash(int x) { ... }
int next[100];
// 修正後
namespace MyAlgo {
int myHash(int x) { ... }
int nextNode[100];
}
// 使用時 MyAlgo::myHash(...)
using namespace std;,防止污染全局命名空間。hash, next, prev, data, size, count, find, sort 等)。/W4 (MSVC) 或 -Wall -Wextra (GCC/Clang) 早期發現衝突。