我试图在函数中使用向量的内容,该函数有自己的.cpp和头文件。
头文件具有声明
void drawIsland(int);
.cpp文件有定义
void drawIsland(vector<int>&Island)
{//code here...};
然而,尝试在主.cpp文件中调用该函数会给出错误“从”std :: vector&gt;“到”int“存在”没有合适的转换函数“,并且代码将不会运行。
我试图传递的向量已经初始化,用户定义的整数个数均为0。
有关如何将矢量导入函数的任何建议吗?
答案 0 :(得分:3)
使声明(.h
)与定义(.cpp
)匹配!
呼叫网站只看到void drawIsland(int)
,那么它怎么认为传递vector
是正确的?
所以你的标题应如下所示:
#ifndef INCLUDED_DRAW_ISLAND
#define INCLUDED_DRAW_ISLAND
#include <vector>
void drawIsland(std::vector<int> &island);
#endif
你的cpp应该是这样的:
#include <draw_island.h>
void drawIsland(std::vector<int> &island)
{
// do stuff...
}
你的主要应该是这样的:
#include <draw_island.h>
#include <vector> // not strictly necessary
int main()
{
std::vector<int> island{1,2,3,4,5};
drawIsland(island);
}