• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

c++ pętla for

Object Storage Arubacloud
0 głosów
739 wizyt
pytanie zadane 19 sierpnia 2020 w C i C++ przez hakiri Nowicjusz (120 p.)

Cześć, uczyłem się ostatnio o operowaniu na tablicach wielowymiarowych i spotkałem się z użyciem petli for w sposób który widze pierwszy raz. Mógłby mi ktoś wytłumaczyć na jakiej zasadzie pętla wie że a to tablica i jakim cudem wypisuje wiersze i kolumny w odpowieniej kolejności? 

 

#include <iostream>

using namespace std;

int main()
{

    const int n=4,m=2;
    int a[n][m]=
    {
      { 1, 2 },
      { 3, 4 },
      { 5, 6 },
      { 7, 8 }
    };



    for (const auto &row : a){
        for(const auto &item :row )
    {

        cout<<item<<' ';

    }
    cout<<'\n';

    }


    return 0;
}

 

1 odpowiedź

+1 głos
odpowiedź 19 sierpnia 2020 przez profesorek96 Szeryf (91,420 p.)

Standard CPP 11 wprowadza coś takiego jak pętla zakresowa. Pętla ta zachowuje się jak znana z innych języków pętla foreach.

Ten sam kod można by było zapisać też tak:

#include <iostream>
 
using namespace std;
 
int main()
{
 
    const int n=4,m=2;
    int a[n][m]=
    {
      { 1, 2 },
      { 3, 4 },
      { 5, 6 },
      { 7, 8 }
    };
 
 
 
    for(int i=0;i<n;i++)
    {
    	for(int j=0;j<m;j++)
    	{
    		cout<<a[i][j]<<" ";
    	}
    	cout<<"\n";
    }
 
 
    return 0;
}

Polecam poczytać:

https://devcode.pl/cpp11-zakresowa-petla-for/

Jeśli chodzi o słowo kluczowe auto, jest to słowo dzięki temu nie musimy określać typu zmiennej. Od razu pragnę wyjaśnić że auto to nie jakiś uniwersalny typ. Podczas kompilacji kompilator wykryje co jaki typ powinien być zamiast słowa auto i go tam wstawi. Błędem jest tworzenie zmiennych tak:

auto k;

Ponieważ kompilator nie wie jaki typ nadać zmiennej k.

Poprawne jest:

auto k=5;

Tutaj kompilator z kontekstu jest w stanie wywnioskować że chodzi nam o typ int.

komentarz 19 sierpnia 2020 przez hakiri Nowicjusz (120 p.)
Wielkie dzięki, dokładnie o taką odopwiedź mi chodziło! :)
komentarz 19 sierpnia 2020 przez profesorek96 Szeryf (91,420 p.)
Proszę bardzo :)

Podobne pytania

0 głosów
2 odpowiedzi 721 wizyt
0 głosów
2 odpowiedzi 708 wizyt
pytanie zadane 23 lutego 2017 w Java przez drag2 Nowicjusz (170 p.)
+2 głosów
1 odpowiedź 610 wizyt
pytanie zadane 9 lipca 2020 w C i C++ przez nanautzin Obywatel (1,510 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...