刚刚开始学习矢量,但我从VC ++ 2010中得到了这个错误并且卡在那里,请帮助....
“错误C2228:'。push_back'的左边必须有class / struct / union”
#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;
}
答案 0 :(得分:6)
vector<double> myVector();
这一行看起来像一个函数返回向量的前向声明。
应该只是
vector<double> myVector;
答案 1 :(得分:2)
你的问题在这里,你宣称一个函数不是一个向量,这被称为most vexing parse。您目前所拥有的是被解释为函数的前向声明,该函数不带任何返回vector<double>
的参数:
vector<double> myVector();
^^
如果您只想使用默认构造函数,则需要:
vector<double> myVector ;
与您当前的问题无关,我会反对using namespace std;
。我意识到它无处不在,它节省了一些打字,但从长远来看,它会给你带来麻烦。
答案 2 :(得分:2)
这句话错了:
vector<double> myVector();
或编译器会认为Vector是一个返回vector !!值的函数。
你应该定义一个这样的矢量:
vector<double> myVector