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})
て使用すると、機能します(明らかに間違っていますが)。どうすればこれを修正できますか? (または、少なくとも同じことを 2 回書くよりもエレガントな方法で実装します)h[hash_func(n1, val)]
h