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ć.
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ć.
A co ten operator[] zwraca? Czy zwraca referencję?
Czyli rozumiem, ma zwracać referencje do tej zmiennej? Bo tylko zwraca wartość
No to zastanów sie jaki miałoby to sens...
Zresztą komunikat błedu to pewnie jakieś non-l-value in assignment czy coś...
Ale, to jak miałbym zrobić? Mam całą klasę, ale operator () nie zbyt dobrze wychodzi, jako zmieniacz wartości.
Operator [] musi zwrócić referencję - nie będziesz wtedy potrzebował przeciążonego operatora w klasie kontenera.
Dzięki - udało mi się :)
PS. Jakby ktoś chciał, oto wynik mojej pracy(operator = niezbyt działa chyba)
http://4programmers.net/Pastebin/1005
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.
Ok, zwalnianie dodałem, ale jak to zoptymalizować?
Odświeżam, może ktoś pomoże. Chcę osiągnąć chociaż te 30 sec.