对向量进行赋值时,不能像数组那样使用下标值来操作;
#include <iostream>
#include <vector>
using namespace std;
void print(vector<int> a)
{
for(int i=0;i < 7;i++)
{
std::cout << a[i] <<" ";
}
std::cout << "\n";
}
//vector<int> add(vector<int> a,vector<int> b)
//{
// vector<int> c;
// for(int i=0;i < 7;i++)
// {
// c.push_back(a[i]+b[i]);
// }
// return c;
//}
vector<int> add(vector<int> &a,vector<int> &b)
{
vector<int> c;
for(int i=0;i < 7;i++)
{
/*c.push_back(a[i]+b[i]);*/
a[i] += b[i];
}
return a;
}
int main()
{
int a[]={1,2,3,4,5,6,7};
int b[]={11,12,13,14,15,16,17};
vector<int> a1(a,a+7);
vector<int> b1(b,b+7);
vector<int> c1=add(a1,b1);
print(a1);
print(b1);
print(c1);
return 0;
}
用下标操作来插入是非法的;
c[i]=a[i]+b[i];
应该使用:
c.push_back(a[i]+b[i]);
下标是修改不是插入.
a[i] += b[i];
否则就出现“vector subscript out of range”!!!!!