c++中 vector变量在作为函数参数传递前,需要赋初值吗?
我的代码中有如下两个语句,这样做会不会引发错误?std::vector<std::vector<int>>a;XXX::function(a);vector变量a在作为函...
我的代码中有如下两个语句,这样做会不会引发错误?
std::vector<std::vector<int> > a;
XXX::function(a);
vector变量a在作为函数参数传递,在function中存放修改的数据返回。如果只是用上述语句声明一下,
会不会出现如下图所示的问题? 展开
std::vector<std::vector<int> > a;
XXX::function(a);
vector变量a在作为函数参数传递,在function中存放修改的数据返回。如果只是用上述语句声明一下,
会不会出现如下图所示的问题? 展开
推荐于2017-12-16
展开全部
你传递的实际上是a的一个拷贝变量,而不是a,所以实际上a并没有改变,你后面应该是想使用改变后的a,所以出错了。改成是可以的:
#include<iostream>
#include<vector>
using namespace std;
class XXX
{
public:
static void function(vector<vector<int> > *a)
{
vector<int> text;
for (int i = 0;i < 10;i++)
text.push_back(i);
a->push_back(text);
}
};
int main()
{
std::vector<std::vector<int> > *a=new std::vector<std::vector<int> >;
XXX::function(a);
for (int i = 0;i < 10;i++)
cout << (*a)[0][i] << " ";
cout << endl;
delete a;
system("pause");
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询