使用向量作为参数(C ++)

时间:2013-07-25 22:47:12

标签: c++

我正在尝试打印前25个斐波纳契数的偶数。但是,我认为我在下面使用向量作为我的函数的参数时遇到了问题。你看到我做错了吗?

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

int main(){
  int j=1, k=1, sum;
  vector<int> myvector(25);
  for (int i=0; i<25; i++) {
    //cout << j << " ";
    myvector[i] = j;
    sum=j+k;
    j=k;
    k=sum;
}
    findeven(myvector);
    system("pause");
}



int findeven (vector<int>){
for (int i = 0, i < 25; i++){
if (vector[i] % 2 == 0){
    cout << vector[i];
}
}
else{
}

}

1 个答案:

答案 0 :(得分:4)

vector<int>只是一个类型名称。您需要将参数命名为能够使用它。您也不能在循环中尝试使用类型名称作为变量。固定代码:

int findeven( vector<int> v ) {
    if (v[i] % 2 == 0)
        cout << v[i];
    //...
}

由于你没有改变函数内部的向量,所以最好通过const引用传递它以避免复制它:

int findeven( const vector<int>& v );

在使用之前,您还需要使该功能可见。现在,它是在main函数之后定义的,你会得到一个错误,因为你试图在编译器还没有看到它的声明的地方调用它。把它放在main之前(或者至少是它的声明)。