Działanie na dwóch listach.

0

Hej, mając przykładowe dwie listy oraz listy metod:

struct misja{
int nrmisji;
misja *nastepna;
misja();
};
misja::misja(){
nastepna = 0;
}

struct listam{
misja *pierwsz;
void dodaj_misje();
listam();
};

listam::listam(){
pierwsz=0;
}


struct misja2{
int nrmisji2;
misja2 *nastepna;
misja2();
};
misja2::misja2(){
nastepna = 0;
}

struct listam2{
misja2 *pierwsz;
void dodaj_misje();
listam2();
};

listam2::listam2(){
pierwsz=0;
}

Chciałbym w metodzie void misja(); uzyskać dostęp do wskaźnika początku drugiej listy misja2 *pierwsz, ale nie wiem jak to zrobić. Jakieś podpowiedzi?

2
  1. sformatuj kod
  2. powiedz co chcesz osiagnac (w sensie biznesowym, nie ze chcesz miec dostep do konkretnego pola, tylko po co chcesz miec dostep do pola) bo wyglada to na problem XY
1

Nie masz tu nigdzie metody void misja(). Wygląda za to, że masz problem XY. Opisz co chcesz osiągnąć, a nie jak wymyśliłeś sobie, że to rozwiążesz.

To co tu masz wygląda jak osobna implementacja listy jednokierunkowej dla każdej instancji, której chcesz użyć. Jak musisz użyć listy, to masz std::list, ale lepiej użyj std::vector. Wymyślanie koła na nowo nie ma sensu.

0

Przy dodawaniu elementu na jedną listę, chcę sprawdzić czy istnieje konkretny element na drugiej liście.

Okej, udało mi się rozwiązać problem. Stworzyłem metodę do listy drugiej, gdzie argumentem jest zmienna, której szukam.

1

Dlaczego masz osobną klasę do każdej listy? Poczytaj o std::vector (ew. std::list, jeśli vector naprawdę nie może być użyty) i nie wymyślaj koła na nowo.

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