类函数不会将向量作为参数

时间:2017-06-21 15:00:20

标签: c++ pointers vector

我试图在本页底部(How to convert a 3D point into 2D perspective projection?)的答案中使用反模式提供的代码。我已将其复制到.hpp文件中并将其包含在我的项目中。它汇编得很好。我的理解是我需要创建Vectors并将它们添加到VecArr中以便使用ProjectAndClip函数。这是我的代码:

struct Vector
{
    float x;
    float y;
    float z;
    float w;

    Vector() : x( 0 ), y( 0 ), z( 0 ), w( 1 ) {}
    Vector( float a, float b, float c ) : x( a ), y( b ), z( c ), w( 1 ) {}
};

typedef std::vector<Vector> VecArr;

int main(){
    Vector vec1(0.1,0.2,0.3);
    VecArr myVecArr;
    myVecArr.push_back(vec1);
}

但是这给了我以下错误:

Invalid arguments '
Candidates are:
void push_back(const Vector &)
'

我尝试了几种尝试将我的Vector设为const,或调用myVecArr.push_back(&vec1),或const*和{{1}的任意组合但无济于事。如果有人能帮助我理解为什么我会收到此错误以及如何解决此问题,我将不胜感激。 谢谢!

1 个答案:

答案 0 :(得分:0)

事实证明,Eclipse Neon可能只是一个错误!我查看了我的代码并清理了一下,但无法找到错误。我最终得到了与上面相同的代码(除了我清理过的其他部分),它仍然可以编译上面的错误。但是,当我运行代码时,它工作正常!