
如何传递复杂数据类型,如C++中的map怎么传递
展开全部
一般分2种,按值传递和按引用传递。
比如一个函数 void foo(map<string, int> x) 就是按值传递的,每次这个map会被整个拷贝一遍传入函数内,函数内对x的操作不会影响原来的那个map。
如果按引用则是 void foo(map<string, int>& x),传进函数的是引用,不发生拷贝,函数内外的map其实是一个。
因为map往往比较大,拷贝成本比较高,除非必要,还是以引用传递为主。
比如一个函数 void foo(map<string, int> x) 就是按值传递的,每次这个map会被整个拷贝一遍传入函数内,函数内对x的操作不会影响原来的那个map。
如果按引用则是 void foo(map<string, int>& x),传进函数的是引用,不发生拷贝,函数内外的map其实是一个。
因为map往往比较大,拷贝成本比较高,除非必要,还是以引用传递为主。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询