eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingNiezmienniki pętliRe: Niezmienniki pętli
  • X-Received: by 2002:ac8:228f:: with SMTP id f15mr62507qta.4.1542408667897; Fri, 16
    Nov 2018 14:51:07 -0800 (PST)
    X-Received: by 2002:ac8:228f:: with SMTP id f15mr62507qta.4.1542408667897; Fri, 16
    Nov 2018 14:51:07 -0800 (PST)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
    0.net!weretis.net!feeder4.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.
    85.166.215.MISMATCH!z5-v6no903850ite.0!news-out.google.com!t123-v6ni570itb.0!nn
    tp.google.com!g188-v6no906906itg.0!postnews.google.com!glegroupsg2000goo.google
    groups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Fri, 16 Nov 2018 14:51:07 -0800 (PST)
    In-Reply-To: <e...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=213.108.152.51;
    posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S
    NNTP-Posting-Host: 213.108.152.51
    References: <8...@g...com>
    <e...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <7...@g...com>
    Subject: Re: Niezmienniki pętli
    From: Maciej Sobczak <s...@g...com>
    Injection-Date: Fri, 16 Nov 2018 22:51:08 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:212915
    [ ukryj nagłówki ]


    > Najprostrze zastosowanie:
    > QList<int> lList = {0, 1, 2, 3, 4, 5};
    > for(int i(0); i < lList.size(); ++i)
    > // tu robisz coś z lList
    > W tej pętli niezmiennikiem sprawdzanym przed wejściem w pętlę i po kazdej iteracji
    jest:
    > i < lList.size()

    Tak jak już zauważył Queequeg, to nie jest niezmiennik. W ogóle we wzorcu projektowym
    o nazwie "jadę po kontenerze" nie ma niezmienników, chyba że weźmiemy pod uwagę
    następujący:

    - elementy o indeksach większych od i nie zostały jeszcze odwiedzone

    Ale taki niezmiennik (chociaż prawdziwy) jest sztuczny i nic nie wnosi.
    Ciekawsze są niezmienniki w tych pętlach, które swoim działaniem budują jakiś wynik i
    ten wynik ma jakąś ważną stałą cechę. Np. zewnętrzna pętla w algorytmie sortowania
    przez wybieranie ma taki niezmiennik:

    - elementy o indeksach mniejszych od i są już posortowane

    I taki niezmiennik jest już ciekawszy, bo bez patrzenia na algorytm jako całość
    pozwala uzasadnić, że ta całość faktycznie coś sortuje.

    Ale jak rozumiem z sondażu, nikt tego nie stosuje. Pewnie ma to związek z faktem, że
    algorytm sortowania przez wybieranie już został wymyślony. :-)

    > 5.2. Nie wierzę w i nie cierpię Assert (to tak jak by bez ostrzeżenia uderzyć kogoś
    w twarz bez dalszego komentarza).

    To też jest ciekawe. Zwłaszcza, że assert statyczny i dynamiczny to nie to samo.

    --
    Maciej Sobczak * http://www.inspirel.com

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: