eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingNiezmienniki pętliRe: Niezmienniki pętli
  • X-Received: by 2002:a0c:b622:: with SMTP id f34mr61462qve.1.1542383297844; Fri, 16
    Nov 2018 07:48:17 -0800 (PST)
    X-Received: by 2002:a0c:b622:: with SMTP id f34mr61462qve.1.1542383297844; Fri, 16
    Nov 2018 07:48:17 -0800 (PST)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!go
    blin1!goblin.stu.neva.ru!g188-v6no550014itg.0!news-out.google.com!t123-v6ni343i
    tb.0!nntp.google.com!z5-v6no553638ite.0!postnews.google.com!glegroupsg2000goo.g
    ooglegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Fri, 16 Nov 2018 07:48:17 -0800 (PST)
    In-Reply-To: <8...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=188.147.39.128;
    posting-account=pyti1AoAAAAf66c003TUy10QAAnMWaKw
    NNTP-Posting-Host: 188.147.39.128
    References: <8...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <e...@g...com>
    Subject: Re: Niezmienniki pętli
    From: s...@g...com
    Injection-Date: Fri, 16 Nov 2018 15:48:17 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:212904
    [ ukryj nagłówki ]

    > Czy w związku z tym zagadnienie niezmienników jest niepotrzebne? A może nadal jest
    potrzebne i coś innego je zastępuje?

    1. Wiedziałem co to jest.

    2. Stosuję

    3. Sam też stosujesz

    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()

    Nieco bardziej ogólne jest:
    QList<int> lList = {0, 1, 2, 3, 4, 5};
    for(int& lItem : lList)
    // tu robisz coś z lItem
    W tym przypadku niezmiennikiem (ukrytym) jest fakt iteracji po wszystkich elementach
    listy.

    4. Zazwyczaj dalszych niezmienników w pętli nie sprawdzam. Głównie ze względu na 2
    wady:
    4.1. Puchnięcie i zaciemnianie kodu.
    4.2. Spowolnienie programu.

    5. Bardzo często sprawdzam parametry wejściowe funkcji (wierzę i stosuję coś w
    rodzaju programowania kontraktowego).
    5.1. Wierzę w try, throw, catch (wyjątki obowiązkowo dziedziczone po std::exception z
    opisem i kodem błędu).
    5.2. Nie wierzę w i nie cierpię Assert (to tak jak by bez ostrzeżenia uderzyć kogoś w
    twarz bez dalszego komentarza).
    5.3. Toleruję wartości zwracane (jako informacje o błędach) i brak standaryzacji w
    dostępie do opisów błędów w Qt.

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: