假设我用multisetm创建一个集合;现在如果我在其中插入n个元素,然后删除其中一个元素,然后插入一个新元素而不是以前的元素。然后,集合将具有相同的顺序,否则它的顺序将改变,以便再次以排序的方式排列自己。
multiset<long long> a;
for( int i=0 ; i<n ; i++)
{
int x;
cin>>x;
a.insert(x);
}
for( int i=0 ; i<k ; i++)
{
auto it=(--a.end());
long long max=(*it);
sum+=max;
a.erase(it);
a.insert((max)/2);
}
I tried something like this
1条答案
按热度按时间a0zr77ik1#
是的,我弄错了。我是在擦除它之后使用迭代器的。我找到了一个更好的方法来做我正在做的事情。我只是先存储(*it)的值,然后擦除它,然后插入(*it)/2。当我使用insert函数插入一些值时,当插入一个新值时,集合再次被排序。