在map中插入元素到vector中
Insert element into vector inside map C++
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));
,代码就可以编译了。
相关文章:
- 对 Vector 元素 (C++) 的push_back操作
- 有没有函数可以直接获取 std::vector 元素的大小?
- 使用 stl 排列 std::vector 元素的最短解决方案
- 在不调用构造函数的情况下创建 Vector 元素
- 分配std :: vector元素的两种方法
- 如何对std::vector元素中的对象使用shared_mutex
- 在 GDB 漂亮的打印机中显示特定的 std::vector 元素
- 将分配到std :: vector元素线程安全
- 是否可以使用 std::vector 元素的地址作为指针
- 访问std::vector元素的速度会随着向量大小而减慢
- 指向 std::vector 元素时编译器错误<bool>?
- 通过 std::vector.data() 指向 std::vector 元素的指针指向损坏的数据
- 指向所有 std::vector 元素的指针
- 调用在函数调用期间重新分配的“std::vector”元素的函数是否会导致麻烦
- 使用下标运算符进行Integer Vector元素比较失败,但使用at函数成功
- 填充一个无序的vector元素指针队列
- 将vector元素赋值给调用emplace_back的函数的result
- 调用带有引用vector元素参数的c++函数
- 将vector元素转换为字符串进行比较
- vector元素被覆盖