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

Zliczanie elementów tablicy

Object Storage Arubacloud
0 głosów
327 wizyt
pytanie zadane 26 kwietnia 2020 w C i C++ przez michhal1 Początkujący (270 p.)
Witam, szukam jakieś funkcji, która zlicza liczbę elementów występujących w danej tablicy i można zapisać wynik jej działania w zmiennej, albo warunku, który postawiony w pętli sprawi, że pętla wykona się tyle razy ile elementów zawiera tablica o dowolnym rozmiarze.
1
komentarz 26 kwietnia 2020 przez tkz Nałogowiec (42,000 p.)

2 odpowiedzi

+1 głos
odpowiedź 26 kwietnia 2020 przez profesorek96 Szeryf (91,420 p.)
Niestety muszę cię zasmucić. Nie ma czegoś takiego jak funkcja pozwalająca sprawdzić rozmiar tablicy statycznej. O ile mówimy o tablicach, nie łańcuchach znaków do funkcji musisz przekazać wskaźnik na tablicę jak i rozmiar. Sztuczka z sizeof nie działa po za miejscem deklaracji tej tablicy. Czyli jeśli deklarujesz tablice w main, a następnie przekazujesz ją gdzieś do innej funkcji to nie będzie działać poprawnie pomiar wykonany za pomocą sizeof. Inaczej jest w przypadku łańcuchów znaków. W C++ jak i C każdy poprawny łańcuch znaków powinien kończyć się znakiem null czyli '\0'. Znak ten mówi nam właśnie o końcu łańcucha. W tym przypadku morzem skorzystać z funkcji strlen.

Radzę ci się zapoznać z klasą Vector. Tam już wewnątrz obiektu tej klasy przechowywana jest wielkość danego wektora.
komentarz 26 kwietnia 2020 przez tkz Nałogowiec (42,000 p.)

Oczywiści, że jest. Dokładnie od najnowszego standardu z liczbą 2. 

#include <iostream>
#include <vector>
#include <array>
#include <span>

std::size_t size(std::span<int> container) 
{
    return container.size();
}

int main() 
{
    int a[]{23, 45, 67, 89};
    std::cout<<size(a)<<'\n';

    std::vector v{1, 2, 3, 4, 5};
    std::cout<<size(v)<<'\n';

    std::array a2{-14, 55, 24, 67};
    std::cout<<size(a2)<<'\n';
}

Jako coś poza tematem, dorzucę, że istnieją dwie dodatkowe opcje std::rank, oraz std::extent by wyciągnąć rozmiary i wymiary, oczywiście lokalnie. Ale tutaj już zostaje doczytać. 

0 głosów
odpowiedź 26 kwietnia 2020 przez michhal1 Początkujący (270 p.)

Znalazłem rozwiazanie, można zapisać do zmiennej sizeof(nasza_tablica) i podzielić to przez sizeof(nasza_tablica[0]), wtedy otrzymujemy liczbę elementów naszej tabeli smiley

Podobne pytania

0 głosów
1 odpowiedź 461 wizyt
0 głosów
1 odpowiedź 719 wizyt
0 głosów
1 odpowiedź 350 wizyt
pytanie zadane 12 grudnia 2016 w C i C++ przez devi Początkujący (320 p.)

92,568 zapytań

141,422 odpowiedzi

319,634 komentarzy

61,956 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!

...