我通常使用C语言编程。现在要转向C++。我有一个包含六千万条目的std::unordered_map
。它只会被加载一次,以后不会被修改。我想偶尔将它传递给一些函数。但是这段代码会每次复制哈希映射:
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);
}
如果我只想传递指针,然后像平常一样查询它:value = mer_map [key]
,该怎么做?我搜索并找到了“按引用传递”的语法:
void foo(const ClassName &name)
{
ClassName& temp = const_cast<ClassName&>(name);
... ....
}
但似乎无法编译。请帮忙看看。谢谢。