将Vector的内容传递给函数

时间:2017-03-21 13:11:55

标签: c++ vector

我试图在函数中使用向量的内容,该函数有自己的.cpp和头文件。

头文件具有声明     void drawIsland(int);

.cpp文件有定义         void drawIsland(vector<int>&Island)         {//code here...};

然而,尝试在主.cpp文件中调用该函数会给出错误“从”std :: vector&gt;“到”int“存在”没有合适的转换函数“,并且代码将不会运行。

我试图传递的向量已经初始化,用户定义的整数个数均为0。

有关如何将矢量导入函数的任何建议吗?

1 个答案:

答案 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);
}