以下代碼用了set的erase,運行時提示set/map iterator not incrementable.這是為什么呢?#include<iostream>#include<algorithm>#include<string>#include<set>#include<map>#include<cstdio>using namespace std;int a[600000];set<int> see;set<int>::iterator it;int main( ){ int n; int shur; cin>>n; for(int i=0;i<n;i++) { cin>>a[i]; see.insert(a[i]); } sort(a,a+n); int ds,erasum=0; for(int i=n-1;i>=0;i--) { ds=a[i]*2; if(see.lower_bound(ds)!=see.end()) { it=see.find(a[i]); see.erase(it++); it=see.lower_bound(ds); see.erase(it++); erasum++; } } int sum=see.size()+erasum; cout<<sum<<endl; return 0;}以下為代碼#include<iostream>#include<algorithm>#include<set>using namespace std;int a[600000];set<int> see;set<int>::iterator it;int main( ){int n;cin>>n;for(int i=0;i<n;i++){cin>>a[i];see.insert(a[i]);}sort(a,a+n);int ds,erasum=0;for(int i=n-1;i>=0;i--){ ds=a[i]*2;if(see.lower_bound(ds)!=see.end()){ it=see.find(a[i]);see.erase(it++); it=see.lower_bound(ds);see.erase(it++);erasum++;}}int sum=see.size()+erasum;cout<<sum<<endl;return 0;}
運行時提示set/map iterator not incrementable.這是為什么?
慕工程0101907
2023-04-22 18:14:17