簡體   English   中英

如何在C ++中將unordered_map作為函數參數傳遞?

[英]How do you pass an unordered_map as a function parameter within C++?

我的程序最初設置為通過函數傳遞數組。 此后,我將其更改為unordered_map。 我如何通過函數傳遞unordered_map而不是類似的東西:

int function(int array[])

作為參考:

int function(unordered_map<K, T> &map)

像這樣:

int function(const std::unordered_map<int, int> &map)

除非您需要修改地圖,否則不需使用const。

如果是我的程序,我將輸入typedef map:

typedef int result_t;
typedef std::unordered_map<int, result_t> memoization_table_t;

result_t function(memoization_table_t &map)

我只是編造了東西,因為我不知道你在做什么。 typedef使模板化容器更易於使用,並且它們使用描述性類型名來記錄代碼。

你為什么感到困惑? 只需將int替換為unordered_map<int, int>

int foo(unordered_map<int, int> x)

如果您不需要修改它,則需要使用const引用傳遞它。

int foo(const unordered_map<int, int> &x)

如果要修改用於調用函數的原始對象,請不要使用const。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM