-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.P
OSTED!not-for-mail
From: bartekltg <b...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: Struktura do przydzielania numerków
Date: Mon, 7 Dec 2015 03:09:01 +0100
Organization: ATMAN - ATM S.A.
Lines: 67
Message-ID: <n42pnu$1kp$1@node2.news.atman.pl>
References: <n3s6h0$itv$1@node2.news.atman.pl> <n3s7d4$js6$1@node2.news.atman.pl>
<3...@g...com>
<n3sapd$trt$1@node1.news.atman.pl>
<f...@g...com>
<n3t46b$ol1$1@node1.news.atman.pl> <n3t8qq$tv4$1@node1.news.atman.pl>
<n3u7o7$rbe$1@node1.news.atman.pl> <n41nka$cvu$1@node1.news.atman.pl>
<n41vqp$77h$1@node2.news.atman.pl>
NNTP-Posting-Host: 89-73-81-145.dynamic.chello.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: node2.news.atman.pl 1449454142 1689 89.73.81.145 (7 Dec 2015 02:09:02 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Mon, 7 Dec 2015 02:09:02 +0000 (UTC)
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
Thunderbird/38.3.0
In-Reply-To: <n41vqp$77h$1@node2.news.atman.pl>
Xref: news-archive.icm.edu.pl pl.comp.programming:208982
[ ukryj nagłówki ]On 06.12.2015 19:47, Borneq wrote:
> W dniu 2015-12-06 o 17:26, bartekltg pisze:
>> Czasowo jest gorsze.
>> Pamięćiowo najprawdopoobnij też (ile na raz okien będzie otwartych?),
>> a te dodatkowe 32 bity chyba nie są takim wqielkim narzutem, skoro
>> jadna liczba przyopada na okno (bardziej skomplikowaną strukturę).
>
> Jak to dokładnie będzie wyglądało? Przypuśćmy że mamy tablicę 256
> wartości uint32_t, na razie pustą. Poza tym jedną liczbę oznaczającą
> numer uchwytu do pobrania, gdy nic nie będzie w kolejce. Na początku ta
> liczba jest 0, potem 1,2..99. zwalniamy 5, potem 2, potem 7.
> W kolejce jest 5,2,7 w takiej kolejności, nie koniecznie kolejności
> wzrastających id. Allokujemy: bierzemy 5, itd. aż gdy kolejka będzie
> pusta to bierzemy 100 ?
class numerkomat{
uint32_t nastepny_numrek;
stack<numerek> data;
public:
numerkomat();
void numerek daj_numetek(){
zwroc_numerek( numerek x) {
};
numerek numerkomat::daj_numetek(){
if (data.empty()) napelnij_numerkami( nastepny_numerek*2);
numerek wyn = data.top();
data.pop();
return wyn;
}
void numerek numerkomat::zwroc_numerek(numerek x ){
{
data.push(x);
}
numerkomat::numerkomat()
{
napelnij_numerkami(100); //magiczna liczba, poprawić
}
void numerkomat:: napelnij_numerkami( numerek do_ilu )
{
for (numerek n = nast_numerek; n != do_ilu; n++)
{
data.push(n);
}
}
Dziel problem na poziomy. Powyżej masz klasę, która przydziela
numerki (nietestowana, szkicowana na kolanie). Tu używa std:stack.
W 20s podmienisz to na std:queue lub własną kalsę będącą cyklicznym
buforem zbudowanym na vectro (co jest drugim, zupełnie niezależnym
i niekoniecznie potrzebnym zadaniem).
Pewnie warto by też klasę numerek napisać tak, aby była niekopiowalna,
i tego typu obekty produkować tylko wewnętrz numerkomatu.
Trzeba by wtedy zmienić implementacje i wywołanie napelnij_numerkami,
ale za to użytkownik nie strzeli sobie w stopę tak łatwo, np zwracajkąc
ręcznie wpisaną liczbę.
pzdr
bartekltg
Następne wpisy z tego wątku
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-29 Dławik CM
- 2024-11-29 [OT] Lewe oprogramowanie
- 2024-11-29 Błonie => Sales Specialist <=
- 2024-11-29 Warszawa => IT Expert (Network Systems area) <=
- 2024-11-29 Warszawa => Ekspert IT (obszar systemów sieciowych) <=
- 2024-11-29 Warszawa => Head of International Freight Forwarding Department <=
- 2024-11-29 Białystok => Inżynier Serwisu Sprzętu Medycznego <=
- 2024-11-29 Pómpy ciepła darmo rozdajoo
- 2024-11-29 Białystok => Application Security Engineer <=
- 2024-11-29 Białystok => Programista Full Stack (.Net Core) <=
- 2024-11-29 Gdańsk => Software .Net Developer <=
- 2024-11-29 Wrocław => Key Account Manager <=
- 2024-11-29 Gdańsk => Specjalista ds. Sprzedaży <=
- 2024-11-29 Chrzanów => Specjalista ds. public relations <=
- 2024-11-27 Re: UseGalileo -- PRODUKTY I APLIKACJE UŻYWAJĄ JUŻ DZIŚ SYSTEMU GALILEO