【发布时间】:2015-02-25 10:26:10
【问题描述】:
当我声明像vector<vector<int> >v 这样的向量并尝试将其传递给如下函数时,它可以工作:
int change(vector<vector<int> >&v)
{
v[0][0]=-1;
}
int main()
{
vector<vector<int> >v;
int a[]={1,2,3};
int b[]={4,5,6};
v.push_back(vector<int>(a,a+3));
v.push_back(vector<int>(b,b+3));
change(v);
cout<<v[0][0];
return 0;
}
但是当我声明像 vector<int>v[2] 这样的向量并以同样的方式将其传递给函数时,它会导致错误。
int change(vector<vector<int> >&v)
{
v[0][0]=-1;
}
int main()
{
vector<int>v[2];
int a[]={1,2,3};
int b[]={4,5,6};
v[0]=vector<int>(a,a+3);
v[1]=vector<int>(b,b+3);
change(v);
cout<<v[0][0];
return 0;
}
我该怎么做?为什么会导致错误?
【问题讨论】:
-
your previous question 的答案告诉你
vector<int>v[2]是一个向量数组,而不是“二维向量”。