Я пытался написать простую программу, которая получает числа от пользователей, а затем сортирует их. Я впервые использовал векторы и получил «Ошибка сегментации (ядро сброшено)» в терминале. Может ли smbd помочь мне исправить этот код? Я думаю, что есть проблема в функции sortowan ie () с table.erase (), но я могу ошибаться.
#include <iostream>
#include <vector>
using namespace std;
vector <int> table;
vector <int> sorted;
void out(){
for( size_t i = 0; i < table.size(); i++ ){
cout << table[i] << ", ";
}
}
int y=table[0];
int z;
void sortowanie(){
for( size_t i = 0; i < table.size(); i++ ){
if(table[i]<y){
y=table[i];
z=i;
}
}
sorted.push_back(y);
table.erase(table.begin()+z);
if(table.size() == 0){
out();
}
else{
sortowanie();
}
}
void dodawanie(){
int x;
cin >> x;
table.push_back(x);
if(x == 0){
sortowanie();
}
else{
dodawanie();
}
}
int main()
{
cout << "podaj liczby z przedziału liczb naturalnych \n";
dodawanie();
return 0;
}