Эта программа запрашивает у пользователя число, а затем сохраняет все номера до и включает их в контейнер. Проблема в том, что я удаляю определенные числа, но не могу, потому что программа зависает всякий раз, когда я пытаюсь стереть нечетное число (обозначается NUMBER ниже). Он отлично работает, когда я стираю даже цифры. Однако я заметил, что если я изменил начальное значение y на четное число, я не смогу стереть четные числа. Здесь у меня он установлен на нечетное число. Что я сделал не так?Контейнер с набором C++ не может стереть нечетные числа
#include <iostream>
#include <set>
using namespace std;
int main()
{
set<int>s;
set<int>::iterator cnt;
int n,x,y=1;
cout<<"Number: ";
cin>>n;
for(x=0;x<n-1;x++)
{
s.insert(y);
y++;
}
for(cnt=s.begin();cnt!=s.end();cnt++)
{
if(*cnt==NUMBER)
s.erase(cnt);
}
for(cnt=s.begin();cnt!=s.end();cnt++)
cout<<*cnt<<"\n";
return 0;
}
Ugh - это C++ не C, пожалуйста, поместите ваши объявления переменных вблизи их использования, или сделать это: 'ЬурейеГо набор Инд.Сброса; MySet s;/* ... */for (MySet :: iterator cnt = s.begin(); cnt! = s.end(); ++ cnt) ' –
kfsone