在map中插入元素到vector中

Insert element into vector inside map C++

本文关键字:vector 元素 插入 map      更新时间:2023-10-16
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
    }
}

抛出以下错误:

'->'的基操作数为非指针类型…

m_observations是指向映射的指针,因此使用[]操作符意味着您正在尝试索引到map<int, vector<Observation*>*>的数组,因此->将不适用,因为您正在处理非指针。将for循环内的行改为(*m_observations)[(*it)->getMonth()]->push_back((*it));,代码就可以编译了。