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

Wyświetl ilość niepowtarzalnych elementów array'a w C++.

Object Storage Arubacloud
0 głosów
144 wizyt
pytanie zadane 26 lutego 2023 w C i C++ przez lucasio99 Początkujący (320 p.)
Cześć,

od paru dni zmagam się z następującym problemem:

Mam array'a typu float. W nim znajduje się 15 wartości: 1.4, 0, 1.4, 2.2, 4.2, 5.6, 1, 0, 1, 22.3, 34.4, 22.3, 1.4, 1, 1.4.

I w moim skrypcie chciałbym spowodować, aby wyświetliła się ilość elementów array'a, które się nie powtarzają:

2.2, 4.2, 5.6, 34.4 - czyli ma się wyświetlić 4.

Próbowałem już wielu sposobów z pętlami for i while, jednak wynik nigdy nie wychodził prawidłowy.

Ma ktoś pomysł, aby sprawdzić ilość wartości niepowtarzalnych w tej tablicy?

Z góry dziękuję

3 odpowiedzi

+1 głos
odpowiedź 26 lutego 2023 przez tangarr Mędrzec (154,820 p.)
Możesz posortować tablicę. Wtedy wykryjesz które elementy nie mają takiej samej wartości za sąsiada.
komentarz 26 lutego 2023 przez lucasio99 Początkujący (320 p.)
Ja chcę całkowicie wyeliminować te, które mają swoje powtórzenie - czyli mają pozostać tylko 4 wartości.
komentarz 26 lutego 2023 przez tangarr Mędrzec (154,820 p.)
Po posortowaniu tablica będzie miała postać: 0, 0, 1, 1, 1, 1.4, 1.4, 1.4, 1.4, 2.2, 4.2, 5.6, 22.3, 22.3, 34.4
Wtedy wystarczy jedna dodatkowa zmienna i jedna pętla aby aby wykryć unikalne elementy
0 głosów
odpowiedź 26 lutego 2023 przez lucasio99 Początkujący (320 p.)
Jednym z moich sposóbów było umieszczenie dwóch pętli for, które sprawdzały powtórzenia dla każdej liczby. Jednak wynik wychodził nieprecyzyjny, gdyż w przypadku większej ilości powtórzeń w array'u, np. 4x 1.4, zmienna zwiększała się o większą wartość.
0 głosów
odpowiedź 26 lutego 2023 przez Wiciorny Ekspert (269,710 p.)
edycja 26 lutego 2023 przez Wiciorny

Tak logicznie ujmując:
Tworzysz zbiór (set) na kolekcji i sprawdzasz różnice w ilości elementów.
Wszystkie potórzenia zostaną usunięte.
A że kolekcja jest  jednoznaczna-> czyli taka sama, nie ma opcji, że mają inne elementy

Więc zbiór będzie tymi elementami kolekcji, które nie mają powtórzeń natomiast da się to potem sprytnie wywnioskowac z analizy różnicy, aby jednoznacznie wskazac które elementy powtórzyły się

W js byłoby by to tak np.

 

let uniqueItems = [...new Set(items)]

 

1
komentarz 26 lutego 2023 przez tangarr Mędrzec (154,820 p.)
Albo zamiast setu mógły stworzyć mapę w której zliczałby ilość wystąpień elementów.
Na końcu wyświetliłby tylko te, które występowały tylko raz.
komentarz 26 lutego 2023 przez Wiciorny Ekspert (269,710 p.)
o też fajna sprawa :)

Podobne pytania

0 głosów
3 odpowiedzi 659 wizyt
pytanie zadane 2 kwietnia 2019 w Java przez izas Nowicjusz (120 p.)
0 głosów
1 odpowiedź 305 wizyt
pytanie zadane 9 kwietnia 2018 w C# przez mariola1167 Nowicjusz (140 p.)
+1 głos
1 odpowiedź 266 wizyt

92,556 zapytań

141,404 odpowiedzi

319,560 komentarzy

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

...