刚开始学习向量,但我从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;
}发布于 2013-07-23 11:23:05
vector<double> myVector();这一行看起来像一个返回向量的函数的正向声明。
它应该是公正的
vector<double> myVector;发布于 2013-07-23 11:20:42
你的问题在这里,你声明的是一个函数,而不是一个向量,这就是所谓的most vexing parse。您当前拥有的被解释为函数的正向声明,该函数不带返回vector<double>的参数
vector<double> myVector();
^^如果你只想使用默认构造函数,它需要是:
vector<double> myVector ;与您当前的问题无关,我建议您不要使用using namespace std;。我意识到它无处不在,它节省了一些输入,但从长远来看,它会给你带来问题。
发布于 2013-07-23 11:24:05
这句话是错的:
vector<double> myVector();否则编译器会认为myVector是一个返回向量值的函数!!
您应该像这样定义一个向量:
vector<double> myVectorhttps://stackoverflow.com/questions/17800955
复制相似问题