回答
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