簡體   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