我有兴趣在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个元素。有更高效的方式吗?我担心擦除会导致内存重新分配并减慢代码速度。