在 STL 地图中存储提升accumulator_set
Store boost accumulator_set in STL map
我想在 stl 映射中存储多个提升accumulataor_set。
我读到的所有示例都使用 accumulator_set
作为局部变量:
accumulator_set<int, stats<tag::rolling_mean> > acc(tag::rolling_window::window_size = 5);
acc(1);
acc(2);
acc(3);
cout << rolling_mean(acc);
但是我想将accumulator_set
存储在地图中。我试图编写这样的代码,但我卡住了:
map<int, accumulator_set<long, stats<tag::rolling_mean> > > avg;
void update(int id, long data){
if(avg.count(id)==0){
//key doesn't exist in map
avg[id]= ;// How to create acc as in above example and store it in map?
}
accumulator_set<long, stats<tag::rolling_mean> > &acc = avg[id];
acc(data);
}
void read(int id){
cout << rolling_mean(avg[id]) ;
}
如何创建上例中的accumulator_set
并将其(引用或对象)存储在map中?
您可以使用 insert():
typedef accumulator_set<long, stats<tag::rolling_mean> > acc_set_t;
if(avg.count(id)==0){
//key doesn't exist in map
avg.insert( std::make_pair(id, acc_set_t(/*init parameters here*/) ));
}
相关文章:
- 为什么我无法更改"set<set>"循环中的值<int>
- 对于set上的循环-获取next元素迭代器
- 在声明中合并两个常量"std::set"(不是在运行时)
- 有没有办法对std::unordered_set、std::unrdered_map、std::set、std::map
- 将 std::set 与基于键的比较器一起使用
- 如何使用set实现无序数据结构?
- 使用运算符调用 void 函数时出错<set>
- 修改"std::set"中用户定义类型的值
- 生成提升::hana::set 的常量表达式问题
- 如何在构造函数参数中初始化"std::set"?
- 如何使用 lower_bound/upper_bound 从 std::set 获取索引号?
- 如何在 C++ 中转发声明 std::set?
- 重构使用动态强制转换的 std::set 的比较运算符
- set::find 查找不存在的元素
- 为什么 std::set.erase(first, last) 会影响从中获取 (first, last) 的容器?
- 将 std:set<int32_t> 复制到 std::set <uint32_t>的好方法
- 错误 C2676:std::set::const_iterator 没有运算符 + 函数?
- std::set 是否将对象连续存储在内存中?
- 是否有一个 std::set 函数来确定不超过数字 x 的最大元素?
- google test PrintTo for std::set<std::string>