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中存放修改的数据返回。如果只是用上述语句声明一下,
会不会出现如下图所示的问题?
展开
 我来答
匿名用户
推荐于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;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式