m00neyymann m00neyymann 24.12.2021, 15:54:10 1 + Ktoś jakiś pomysł czemu nie dodaje mi studenta do grupy? #include #include struct Student { std::string imie; std::string nazwisko; std::vector oceny;}; struct Group { std::string nazwa; std::vector st;}; void addstudent(Group grp, Student student){ grp.st.pushback(student);} int main(){ Student stsec; Student stthd; stsec.imie = "Aleksander"; stsec.nazwisko = "Sobiech"; stsec.oceny.pushback(6); stsec.oceny.pushback(5.8); stsec.oceny.pushback(5.11); stthd.imie = "Andrzej"; stthd.nazwisko = "Dziupla"; stthd.oceny.pushback(5.09); stthd.oceny.pushback(5.81); stthd.oceny.pushback(5.95); Group grp; grp.nazwa = "Grupa 7"; addstudent(grp, stthd); addstudent(grp, stsec); std::cout << grp.nazwa << "\n"; for (int i = 0; i < grp.st.size(); i++) { std::cout << grp.st[i].imie << " " << grp.st[i].nazwisko << "\n"; } }#programowanie #cpp
kotbehemoth kotbehemoth 24.12.2021, 15:59:26 via Android 3 + @m00neyymann bo do funkcji przekazujesz kopię obiektu grp i to do tej kopii (która znika przy wyjściu z funkcji) jest dodawany student. Przekazuj grupę przez referencję.
b0vv3r b0vv3r 24.12.2021, 16:00:01 via Wykop Mobilny (Android) 2 + @m00neyymann: bo w add student przekazujesz kopie - zrób Group & i Student &
lucask lucask 24.12.2021, 16:01:51 1 + @m00neyymann: Prawdopodobnie dla tego że funkcja addstudent tworzy kopie vectora.Spróbuj przekazać Group jako referencje albo pointer.
m00neyymann m00neyymann 24.12.2021, 16:10:30 0 + @lucask @b0vv3r @kotbehemotKocham was Panowie, Wesołych Świąt i udanych prezentów :D
#include
#include
struct Student {
std::string imie;
std::string nazwisko;
std::vector oceny;
};
struct Group {
std::string nazwa;
std::vector st;
};
void addstudent(Group grp, Student student)
{
grp.st.pushback(student);
}
int main()
{
Student stsec;
Student stthd;
stsec.imie = "Aleksander";
stsec.nazwisko = "Sobiech";
stsec.oceny.pushback(6);
stsec.oceny.pushback(5.8);
stsec.oceny.pushback(5.11);
stthd.imie = "Andrzej";
stthd.nazwisko = "Dziupla";
stthd.oceny.pushback(5.09);
stthd.oceny.pushback(5.81);
stthd.oceny.pushback(5.95);
Group grp;
grp.nazwa = "Grupa 7";
addstudent(grp, stthd);
addstudent(grp, stsec);
std::cout << grp.nazwa << "\n";
for (int i = 0; i < grp.st.size(); i++)
{
std::cout << grp.st[i].imie << " " << grp.st[i].nazwisko << "\n";
}
}
#programowanie #cpp
Kocham was Panowie, Wesołych Świąt i udanych prezentów :D