Q: 关于STL Vector作为函数参数使用有关问题

Q: 关于STL Vector作为函数参数使用问题
最近刚接触STL vector容器,对于容器的使用存在很多问题,现在碰到了一个问题是vector能否作为一个函数的参数呢?

我尝试写了一个code,如下:

#include <cstdlib>
#include <vector>
#include <iostream>

using std::vector;
using std::cout;
using std::endl;
using std::ios;

void calculateAdjClosePrice(double *close, double *open, double *adj_close);

int main(int argc, char** argv) {
    vector<double> close;
    vector<double> open;
    vector<double> adjclose;
    close.push_back(2.02);
    open.push_back(1.52);
    adjclose.push_back(1);
        
    calculateAdjClosePrice(close,open,adjclose);
    
    return 0;
}

void calculateAdjClosePrice(vector<double> close, vector<double> open, vector<double> adj_close){
    int size=close.size();
    adj_close.clear();
    for(int i=0;i<size;i++){
        if (close.at(i)>open.at(i))
            adj_close.push_back(close.at(i)+0.01*open.at(i));
        else
            adj_close.push_back(close.at(i)-0.01*open.at(i));        
    }
    vector<double>::iterator p;
    for (p=adj_close.begin();p!=adj_close.end();p++)
        cout<<*p<<endl;
}


运行后出现报错,如下:
Trial.cpp:20: error: cannot convert `std::vector<double, std::allocator<double> >' to `double*' for argument `1' to `void calculateAdjClosePrice(double*, double*, double*)'

不知道错在哪里,请求高手们指点!

------解决方案--------------------
把函数定义放在main之前。注意你用了重载。