Struktura usuwanie c++

0

Witam mam pewien problem z funkcją. Muszę napisać kod który ze struktury bedzie usuwał wybranego użytkownika.
na razie napisałem coś takiego:

#include <iostream>
#include <cstdlib>
 
using namespace std;
 
struct czlowiek{
 char imie[50];
 char nazwisko[50];
 char plec;
 long long pesel;
 int wiek;
 float wzrost;
};
 
void wprowadz(int n,czlowiek osoba[])
{
for(int i=0;i<n;i++)
{
cout<<"podaj imie: " ;
cin>>osoba[i].imie;
cout<<"podaj nazwisko: ";
cin>>osoba[i].nazwisko;
cout<<"Wpisz m jesli jestes mezczyzna, a k jesli kobieta: ";
cin>>osoba[i].plec;
cout<<"podaj pesel: ";
cin>>osoba[i].pesel;
cout<<"podaj wiek: ";
cin>>osoba[i].wiek;
cout<<"podaj wzrost: ";
cin>>osoba[i].wzrost;
}
}
 
void wypisz(int n,czlowiek osoba[])
{
for(int i=0;i<n;i++)
{
cout<<endl;
cout<<i+1<<" ";
cout<<"imie: "<<osoba[i].imie<<" ";
cout<<"nazwisko:"<<osoba[i].nazwisko<<" ";
if(osoba[i].plec=='m')
cout<<"plec: mezczyzna"<<" ";
else
cout<<"plec: kobieta"<<" ";
cout<<"pesel: "<<osoba[i].pesel<<" ";
cout<<"wiek: "<<osoba[i].wiek<<" ";
cout<<"wzrost: "<<osoba[i].wzrost;
}
}
 
void usun(int n,czlowiek osoba[])
{
cout<<"Podaj id ktore chcesz usunac ";
int i;
cin>>i;
i=i-1;
delete osoba[i].imie;
delete osoba[i].nazwisko;
delete osoba[i].plec;
delete osoba[i].pesel;
delete osoba[i].wiek;
delete osoba[i].wzrost;
}
 
 
 
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
int main()
{
int n;
cout<<"Podaj ilosc osob: ";
cin>>n;
czlowiek *osoba;
osoba = new czlowiek[n];
wprowadz(n, osoba);
wypisz(n, osoba);
usun(n, osoba);
wypisz(n, osoba);
 
return 0;
} 

Proszę o pomoc.

0

Nie wiem jakie masz tam wymagania w zadaniu, ale proponuję użyć std::vector.

0

mógł byś mi wytłumaczyć gdzie o użyc bo nie miałem tego jeszcze, ale dzieki za podpowiedz :)

1

std::vector to taka lista zaimplementowana jako tablica. to taka dynamiczna tablica, tylko że w lepszym stylu. Więc zacznij od zamiany

 czlowiek *osoba;
osoba = new czlowiek[n];

na równoważny kod wykorzystujący std::vector.

1 użytkowników online, w tym zalogowanych: 0, gości: 1