我应该如何在向量中输入一系列输入?

时间:2017-03-28 11:23:03

标签: c++ vector

我使用了下面给定的函数inpvec,但它不起作用,因为当我在main函数中使用函数时,没有使用迭代器的输出......

 #include <iostream>
 #include <vector>
 using namespace std;

 void inpvec(vector <int> a, int veclen){
     int b;
     for(int i=0;i<veclen;i++){
         cin>>b;
         a.push_back(b);
     }
 }

 int main()
 {
     int n,j;
     cin >>n;
     vector <int> vac;
     vector <int> pat;
     vector <int>::iterator it;
     inpvec(vac, n);
     inpvec(pat, n);
     for(it=vac.begin();it!=vac.end();it++){
         cout<<*it<<" ";
     }
     for(it=pat.begin();it!=pat.end();it++){
         cout<<*it<<" ";
     }
     return 0;
 }

2 个答案:

答案 0 :(得分:4)

你的功能

new float[1000]

复制第一个参数void inpvec(vector <int> a, int veclen) 。所以调用代码没有区别。

将其作为参考将改变

a

答案 1 :(得分:2)

您正在传递矢量副本:

void inpvec(vector <int> a, int veclen)

您需要通过引用传递它:

void inpvec(vector <int>& a, int veclen)
________________________^_______________