vector的问题C2019

来源:百度知道 编辑:UC知道 时间:2024/05/30 10:39:44
#include <iostream>
#include <vector>

using namespace std;

vector<int> append(vector<int>a, vector<int>b)
{
int i;
for ( i=0;i<a.size();i++)
{
append[i]=a[i];
}
int j=a.size();
for (i=0,j=a.size();i<b.size(),j<a.size()+b.size();i++,j++)
{
append[j]=b[i];
}
}
int main()
{
int i;
vector<int> a(4);
a[0]=1;
a[1]=4;
a[2]=9;
a[3]=16;
vector<int> b(5);
b[0]=9;
b[1]=7;
b[2]=4;
b[3]=9;
b[4]=11;
vector<int> append(a, b);
for (i=0;i<append.size();i++)
{
cout<<append[i]<<" ";
}
return 0;
}
怎么改啊?本人菜鸟

函数不是那样写的,也不那样调用的。下面是修改后的程序:
#include <iostream>
#include <vector>

using namespace std;

vector<int> append(vector<int>a, vector<int>b) //定义函数
{
int i;
vector<int> c(a.size()+b.size());//定义向量C
for ( i=0;i<a.size();i++)
{
c[i]=a[i];
}
for (i=a.size();i<a.size()+b.size();i++)
{
c[i]=b[i-a.size()];
/*将B中的值的添加到C尾.这里可以不用到变量J,但速度可能会慢一点点,因为调用a.size()这个函数比j++所用到的时间多些,嘿嘿,这只是另一方法而已.你程序里不知道为什么会有append[i]这样的句子,但是肯定这种写法是错误的*/
}
return c;
}
int main()
{
int i;
vector<int> a(4);
a[0]=1;
a[1]=4;
a[2]=9;
a[3]=16;
vector<int> b(5);
b[0]=9;
b[1]=7;
b[2]=4;
b[3]=9;
b[4]=11;
vector<int> x;
x=append(a, b); /*调用函数append,因为append函数的定义在main之前,所以不需要再申明*/
for (i=0;i<x.size();i++)
{
cout<<x[i]<<" ";