[C++] Operator = we własnej liscie

0

Napisałem własną listę, obiektowo, z wykorzystaniem szablonów. Tylko mam pytanie - Co zrobić, aby można było przypisywać tak np.

ListaPrzykladowa[2] = 10; 

Operator [] mam przeciążony, ale nie mogę dojść, aby tak mógłbym przypisywać.

0

A co ten operator[] zwraca? Czy zwraca referencję?

0

Czyli rozumiem, ma zwracać referencje do tej zmiennej? Bo tylko zwraca wartość

0

No to zastanów sie jaki miałoby to sens...
Zresztą komunikat błedu to pewnie jakieś non-l-value in assignment czy coś...

0

Ale, to jak miałbym zrobić? Mam całą klasę, ale operator () nie zbyt dobrze wychodzi, jako zmieniacz wartości.

0

Operator [] musi zwrócić referencję - nie będziesz wtedy potrzebował przeciążonego operatora w klasie kontenera.

0

Dzięki - udało mi się :)
PS. Jakby ktoś chciał, oto wynik mojej pracy(operator = niezbyt działa chyba)
http://4programmers.net/Pastebin/1005

0

Mam teraz inne pytanie. Czy ten kod, jaki podałem w poprzednim poście, da radę zoptywalizować? Testowałem na 100000 obiektów list z STL i moją klasę, a wyniki są koszmarne - 69 sec dla mojej, 8 sec dla list. Odbywało się na nieobciążonym kompie. Test to był dodawnie obiektów, zmienianie wartości i wyświetlanie jej.

0

Ok, zwalnianie dodałem, ale jak to zoptymalizować?

0

Odświeżam, może ktoś pomoże. Chcę osiągnąć chociaż te 30 sec.

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