1

刚开始学习矢量,但我从 VC++2010 得到这个错误并卡在那里,请帮助....

“错误 C2228:'.push_back' 的左侧必须有类/结构/联合”

#include <vector>
#include <iostream>
#include <limits>

using namespace std;

int main()
{
    vector<double> myVector();
    double temp = 30.0;
    myVector.push_back(temp);   //this line makes error ?? why??

    return 0;
}
4

3 回答 3

6
vector<double> myVector();

这一行看起来像一个函数返回向量的前向声明。

应该只是

vector<double> myVector;
于 2013-07-23T03:23:04.590 回答
2

您的问题在这里,您声明的是一个函数而不是向量,这被称为最令人烦恼的 parse。您当前所拥有的被解释为一个函数的前向声明,该函数不接受返回 a 的参数vector<double>

vector<double> myVector();
                       ^^

如果您只想使用默认构造函数,则需要:

vector<double> myVector ;

与您当前的问题无关,我建议不要使用using namespace std;. 我意识到它无处不在,它节省了一些打字,但从长远来看,它会给你带来问题。

于 2013-07-23T03:20:42.403 回答
2

这句话是错误的:

vector<double> myVector();

否则编译器会认为 myVector 是一个返回向量值的函数!

你应该像这样定义一个向量:

vector<double> myVector
于 2013-07-23T03:24:05.480 回答