繁体   English   中英

C ++向量和push_back

[英]c++ vectors and push_back

我收到一个奇怪的C ++错误:

main.cpp:81:9: error: request for member ‘push_back’ in ‘points’, which is of non-class type ‘std::vector<std::vector<float> >()’

我正在阅读此内容,就像c ++试图告诉我函数push_back不是向量类的一部分。 这是我的相关代码:

        vector<vector<float> > points(); //construct an empy vector of vectors                                          
        vector<float> first(3,0);        //construct 0 vector in R^3                                                     
        points.push_back(first);         //put (0, 0, 0) in points
  1. 我的错误在哪里?为什么c ++不这样? 这对我来说似乎很直观。

非常感谢所有帮助!

这是MVP(最烦人的解析)的情况:

vector<vector<float> > points();

这实际上是一个函数声明,将其更改为:

vector<vector<float> > points;

在第一个版本中,C ++认为您正在声明一个称为点的函数,该函数不带任何参数并返回浮点数矢量。 这就是为什么它抱怨它是非类类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM