Mam zrobiony kontener, który przetrzymuje mi elementy, jednak mam pewien problem. Zrobiony jest tak, że powtarzające się elementy nie są indeksowane (a chcę żeby i takie były w kontenerze, normalnie indeksowane) i nie mam pojęcia jak to zmienić. Wrzucam dwie metody, które za to odpowiadają.
bool Kontener<TYP>::dodajElement(const TYP &ob){
if (indexOf(ob) == -1){ //Sprawdzanie czy obiekt znajduje sie w kontenerze
Wezel<TYP> *nowy_wezel, *pop_wezel;
nowy_wezel = new Wezel<TYP>();
nowy_wezel->poprzedni_wezel = NULL;
nowy_wezel->nastepny_wezel = NULL;
nowy_wezel->ob = ob;
if (liczba_elementow == 0){
poczatek = nowy_wezel;
}
else {
Wezel<TYP> *tmp;
tmp = zwrocWskaznikWezla(liczba_elementow - 1);
tmp->nastepny_wezel = nowy_wezel;
if (liczba_elementow > 1){
pop_wezel = zwrocWskaznikWezla(liczba_elementow - 2);
tmp->poprzedni_wezel = pop_wezel;
}
}
liczba_elementow++;
return true; //Dodano obiekt
}
else
return false;
}
template <class TYP>
int Kontener<TYP>::indexOf(const TYP &k){
int indeks = -1;
for (int i = 0; i < liczba_elementow; i++)
if ((*this)[i] == k)
{
indeks = i;
break;
}
return indeks;
}
Proszę o pomoc.