我通常用C語言編寫代碼。現在轉向C++。我有一個std::unordered_map
與6000萬條目。它只加載一次,稍後不會被修改。我想不時將它傳遞給一些功能。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);
}
如果我只想通過pointer
,如何傳遞和查詢它像往常一樣:value = mer_map[key]
但是這個代碼將每次複製哈希地圖嗎?我搜索並找到了passing by reference
語法:
void foo(const ClassName &name)
{
ClassName& temp = const_cast<ClassName&>(name);
... ....
}
但似乎無法編譯。請幫忙。謝謝。
使用引用將是一個很好的C++方法。顯示你遇到的錯誤。 – 2013-04-04 15:39:01
爲什麼不傳遞非const引用? – 0x499602D2 2013-04-04 15:40:51
是的,我試過@juanchopanza建議的非const方法,它也可以。謝謝。 – Joy 2013-04-04 16:58:12