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

Using a vector as a parameter (C++)

本文关键字:C++ 参数 向量      更新时间:2023-10-16

我正在尝试打印前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{
}

}

vector<int>只是一个类型名称。你需要命名参数才能使用它。你也不能像在循环中那样使用类型名称作为变量。固定代码:

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

由于您不更改函数内部的矢量,因此最好通过const引用传递它,以避免复制它:

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

在使用函数之前,您还需要使其可见。现在,它是在main函数之后定义的,您会遇到错误,因为您试图在编译器尚未看到其声明的地方调用它。把它放在main之前(或者至少放在它的声明之前)。