普段は C でコーディングしていますが、現在は C++ に移行しています。私はstd::unordered_map
6000万のエントリを持っています。一度だけロードされ、後で変更されることはありません。時々いくつかの関数に渡したいと思います。しかし、このコードは毎回ハッシュ マップをコピーします。
typedef unordered_map<uint64_t, mer*> mer_map;
void test_pass_by_ref3(mer_map kmers) {
}
void test_pass_by_ref2(mer_map kmers) {
test_pass_by_ref3(kmers);
}
void test_pass_by_ref(mer_map kmers) {
test_pass_by_ref2(kmers);
}
のみを渡したい場合はpointer
、それを渡し、通常どおりクエリする方法: value = mer_map[key]
? passing by reference
構文を検索して見つけました:
void foo(const ClassName &name)
{
ClassName& temp = const_cast<ClassName&>(name);
... ....
}
しかし、コンパイルできないようです。助けてください。ありがとう。