我正在尝试使用 C++11 功能实现哈希类。我没有重复使用 stl 的哈希,因为它是学校作业。我正在尝试这样做:
for(auto &h : {H1[hash_func(n1, val)], H2[hash_func(n2, val)]}) {
for(auto &x : h) {
if(x == val) {
swap(x, h.back());
h.pop_back();
}
}
}
H1
并且H2
是 类型vector<T>*
。当我尝试编译它时,我得到了一个我什至无法理解的令人讨厌的语法错误。如果我尝试for(auto &h : {H1, H2})
使用h[hash_func(n1, val)]
而不是h
,它会起作用(尽管它显然是错误的)。我怎样才能解决这个问题?(或者至少以比两次编写相同内容更优雅的方式实现它)