std multiset插入并保持长度固定

时间:2016-04-07 14:46:54

标签: c++ stdset

我有兴趣在std :: multiset中插入元素,但我想保持设置的固定长度。每次插入元素时,都会删除最后一个元素。我提出了以下解决方案

int main(){
       std::multiset<std::pair<double, int>> ms;
       for (int i=0; i<10; i++){
              ms.insert(std::pair<double, int>(double(rand())/RAND_MAX, i));
      }
      ms.insert(std::pair<double, int>(0.5, 10));
      ms.erase(--ms.end());
      for(auto el : ms){std::cout<<el.first<<"\t"<<el.second<<std::endl;}
return 0;
}

我将在我的代码中多次执行与此类似的操作,大小为1000个元素。有更高效的方式吗?我担心擦除会导致内存重新分配并减慢代码速度。

0 个答案:

没有答案