Q: 关于STL Vector作为函数参数使用问题
最近刚接触STL vector容器,对于容器的使用存在很多问题,现在碰到了一个问题是vector能否作为一个函数的参数呢?
我尝试写了一个code,如下:
运行后出现报错,如下:
Trial.cpp:20: error: cannot convert `std::vector<double, std::allocator<double> >' to `double*' for argument `1' to `void calculateAdjClosePrice(double*, double*, double*)'
不知道错在哪里,请求高手们指点!
我尝试写了一个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*)'
不知道错在哪里,请求高手们指点!
...全文
相关推荐
46家公司笔试面试题
**容器与迭代器**:文件中提到了vector、list、deque、map等多种STL容器以及迭代器的使用。在C++中,掌握不同容器的特点及其适用场景至关重要。
初识c++STL容器中的vector、deque、list(八)
这里有C++STL——全面总结详细教程(附案例解析)(持续更新中) 我们先认识一下vector: 声明 插入 输出 很好理解。 #include<iostream> #include<vector> using namespace std; int main() { std::vector<int> v; for (int i = 0; i...
C++ STL Adaptor stack、queue和vector的使用.doc
C++ STL Adaptor stack、queue和vector的使用C++ STL 提供了多种容器类,包括 stack、queue 和vector 等,这些容器类都是基于 Adaptor 模式实现的
常用STL的简单使用方法
### 常用STL的简单使用方法#### 队列的使用队列是一种先进先出(FIFO)的数据结构,在很多算法中都扮演着重要的角色,尤其是在图的广度优先搜索(BFS)中。
C++中STL使用总结
本文将总结C++中STL的使用,涵盖vector、stack、queue等常用容器。一、vector向量容器Vector是一种可以动态扩展的数组,它支持快速的随机访问,并允许在序列末尾插入和删除元素。


