首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将boost accumulator_set存储在STL映射中

将boost accumulator_set存储在STL映射中
EN

Stack Overflow用户
提问于 2012-04-23 09:50:28
回答 1查看 426关注 0票数 2

我想在一个stl映射中存储多个boost accumulataor_set。

我读到的所有示例都使用accumulator_set作为局部变量:

代码语言:javascript
复制
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存储在一个映射中。我试着写这样的代码,但我被卡住了:

代码语言:javascript
复制
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并将其(引用或对象)存储在映射中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-23 14:12:20

您可以使用insert():

代码语言:javascript
复制
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*/) ));
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10273888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档