Sample::Sample(vector<Observation*> * vec_observations)
{
this->m_observations = new map<int, vector<Observation*>*>;
vector<Observation*>::iterator it;
for(it = vec_observations->begin(); it != vec_observations->end(); it++){
m_observations[(*it)->getMonth()]->push_back((*it));//ERROR LINE
}
}
它会抛出以下错误:
&#39; - &gt;&#39;的基本操作数有非指针类型等...
此致
答案 0 :(得分:1)
m_observations
是指向地图的指针,因此在其上使用[]
运算符意味着您正在尝试索引到map<int, vector<Observation*>*>
的数组,因此->
将不适用因为你正在处理一个非指针。将for循环中的行更改为(*m_observations)[(*it)->getMonth()]->push_back((*it));
,代码将编译。
这是一个编译的version。