将元素插入到地图C ++中的向量中

时间:2014-03-15 16:35:57

标签: c++ containers

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;的基本操作数有非指针类型等...

此致

1 个答案:

答案 0 :(得分:1)

m_observations是指向地图的指针,因此在其上使用[]运算符意味着您正在尝试索引到map<int, vector<Observation*>*>的数组,因此->将不适用因为你正在处理一个非指针。将for循环中的行更改为(*m_observations)[(*it)->getMonth()]->push_back((*it));,代码将编译。

这是一个编译的version