我通常用 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);
... ....
}
但它似乎无法编译。请帮忙。谢谢。