回答
void Perform(std::map< int, int > r[], size_t numElements);
或
void Perform(std::map< int, int >* r, size_t numElements);
然後,無論哪種方式,呼叫
Perform(random, 50);
編輯:這也可以用於任何常量陣列尺寸如下調用。
Perform(random, sizeof(random)/sizeof (random[0]));
謝謝!它工作完美! – aneesh 2009-08-31 09:11:28
假設執行()有知道的大小隨意的一些方法,你可以將指針傳遞到隨機...例如:
執行(&隨機);
或者,您可以使用std ::地圖的一個std ::名單,並通過該列表的指針(甚至是複製)執行():
執行(隨機);或執行(&隨機);
取決於Perform如何被聲明,當然。
你也可以傳遞一個對std :: map的std :: list的引用。 – jgottula 2009-08-31 05:14:32
啊是的,這就是我與執行(&隨機) – 2009-08-31 05:15:20
&隨機是一個指針,而不是參考。 – 2009-08-31 05:22:21
根據您是否可以Perform
模板函數或沒有,你可以選擇
- 的(常量)引用傳遞地圖:
void Perform(const std::map<int,int> (& map)[50])
- 傳遞一個指針和大小( C方式)
- 創建模板,自動推導出陣列的大小
這是一個說明所有三個代碼片段。
#include <map>
// number 50 hard coded: bad practice!
void Perform(const std::map<int,int> (& maps) [50] ) {}
// C-style array passing: pointer and size
void Perform(const std::map<int,int>* p_maps, size_t numberofmaps){}
// 'modern' C++: deduce the map size from the argument.
template<size_t N>
void TPerform(const std::map<int,int> (& maps)[N]) {}
int main() {
std::map<int,int> m [ 50 ];
Perform(m);
Perform(m, 50);
TPerform(m);
}
- 1. C++將2d數組傳遞給函數
- 2. 將2d矢量傳遞給函數C++
- 3. 將C#中的參數作爲參數傳遞給C++中的回調函數
- 4. 將函數作爲參數傳遞給C++中的方法
- 5. 如何將函數作爲參數傳遞給TypeScript中的Promise?
- 6. 在C++中將函數參數作爲函數參數傳遞
- 7. 如何在C/C++中將typedef函數作爲參數傳遞
- 8. 將代碼從c#傳遞給c作爲函數參數
- 9. 如何將參數傳遞給作爲參考傳遞的函數?
- 10. 當函數作爲參數傳遞時,參數如何傳遞給該函數?
- 11. 如何將$ params數組作爲參數傳遞給函數?
- 12. 如何將數組作爲多個參數傳遞給函數?
- 13. 如何將數組作爲url參數傳遞給Azure函數
- 14. 如何將void函數(void)作爲參數傳遞給另一個函數c
- 15. 將參數傳遞給函數,該參數必須作爲參數傳遞給python中的另一個函數
- 16. 如何將console.log作爲參數傳遞給我的JavaScript函數?
- 17. 如何將任何HtmlControl作爲參數傳遞給函數
- 18. 如何將參數傳遞給傳遞給mapPartitions的函數?
- 19. 如何將參數傳遞給函數
- 20. 如何將參數傳遞給函數?
- 21. 將視圖的名稱作爲參數傳遞給函數
- 22. 如何在C#中將對象的名稱作爲參數傳遞給函數?
- 23. C++ - 將rapidjson :: Document作爲參數傳遞給函數
- 24. 將函數作爲參數傳遞給C++時出現錯誤
- 25. 將函數作爲參數傳遞給Objective-C方法
- 26. 是否有可能將函數作爲參數傳遞給c?
- 27. 將c#函數作爲參數傳遞給Javascript
- 28. Python ctypes,將c_void_p作爲輸出參數傳遞給c函數
- 29. 將函數作爲參數傳遞給方法C++
- 30. 如何將php變量作爲參數傳遞給JavaScript函數
是執行()一個現有的函數,或者你要寫一個? – Naveen 2009-08-31 05:21:02
這不是一張地圖,而是一張50張地圖。這絕對是你'2D地圖'的意思嗎? – 2009-08-31 08:21:27