Stos, kolejka... czy jakieś inne rozwiązanie ?

dział ogólny

Stos, kolejka... czy jakieś inne rozwiązanie ?

Nowy postprzez Slynx » wtorek, 7 czerwca 2011, 22:44

Tak sobie patrzę na kilka moich funkcji i zauważyłem, że samo ich działanie jest bardzo nieefektywne i niepotrzebnie skomplikowane.
Potrzebuję konkretnego rozwiązania i od razu rozwiązanie skojarzyło mi się ze stosem gdy pisałem pod asm. Oczywiście nie mam zamiaru schodzić tak nisko, chodzi mi tylko o rozwiązanie. Ale do rzeczy,

Podczas działania programu użytkownik dodaje różne wartości w różnych ilościach i różnego typu, np
Kod: Zaznacz cały
count type
10     typ6
34     typ7
56     typ1

I gdy już skończy takie dodawanie i przyciśnie "confirm", muszę po kolei przelecieć po każdym elemencie (count * type) odczytać typ, ilość i wykonać odpowiednią funkcję.
W tym momencie przypomina mi się także rozwiązanie polymorphisma z zastosowaniem MemoryStream, ale w tym wypadku to raczej nie pasuje bo odczyt byłby zbyt "kodochłonny".

Najbardziej pasowało by tu coś właśnie na kształt stosu, by po kolei ściągać z niego kolejne rekordy (count, type).
Wcześniej stosowałem tablicę o sztywnych rozmiarach, ale to marnowanie pamięci lub ograniczanie ( w zależności od ilości danych dodanych przez użytkownika).

Coś jak MemoryStream tylko, że zachowaniem pewnej struktury danych i indeksów.
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
Podziękował : 11
Otrzymał podziękowań: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Chrome

Re: Stos, kolejka... czy jakieś inne rozwiązanie ?

Nowy postprzez polymorphism » środa, 8 czerwca 2011, 09:43

Pytanie dziwne, bo w sumie sam sobie na nie odpowiedziałeś: użyj kolejki (Collections.Generic.Queue) lub stosu (Collections.Generic.Stack) ;)
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Stos, kolejka... czy jakieś inne rozwiązanie ?

Nowy postprzez Slynx » środa, 8 czerwca 2011, 12:48

Nie wiedziałem, że coś takiego jest. Zaraz zobaczę jak to działa.
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
Podziękował : 11
Otrzymał podziękowań: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Chrome


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 0 gości

cron