Iterator::count în Rust

Parcurge iteratorul până la capăt și returnează câte elemente a produs.

Sintaxă
fn count(self) -> usize

Ce face Iterator::count

count() numără elementele. De obicei vine după un filter („câte note sunt peste 8?”) sau după un iterator care nu are lungime cunoscută (chars(), split_whitespace()). Consumă iteratorul.

Pentru colecții, len() dă direct numărul de elemente fără parcurgere. Pentru text, s.len() numără octeții, iar s.chars().count() numără caracterele: diferă când există diacritice.

Ce returnează

Numărul de elemente (usize).

Exemple

Exemplul 1: Cuvinte, litere și note mari

fn main() {
    let text = "Știința și arta în Țara Românească";
    println!("{} cuvinte", text.split_whitespace().count());
    println!("{} caractere, dar {} octeți", text.chars().count(), text.len());

    let note = [9, 6, 10, 8, 10, 5];
    println!("{} note de 9 sau 10", note.iter().filter(|&&n| n >= 9).count());
}

Rezultat

6 cuvinte
34 caractere, dar 41 octeți
3 note de 9 sau 10

Exemplul 2: Vocalele dintr-un nume

fn main() {
    let vocale = "aăâeiîou";
    for nume in ["Ioana", "Mihai", "Ștefan"] {
        let n = nume.to_lowercase().chars().filter(|c| vocale.contains(*c)).count();
        println!("{nume}: {n} vocale");
    }
}

Rezultat

Ioana: 4 vocale
Mihai: 3 vocale
Ștefan: 2 vocale

Greșeli frecvente

  • Folosești v.iter().count() pe un vector: corect, dar v.len() e instant.
  • Numeri și apoi vrei să folosești același iterator: count l-a consumat.
  • Faci filter(..).count() > 0 doar pentru existență: any(..) se oprește la primul element găsit.

Comenzi înrudite

  • Iterator::sum: sum adună toate elementele, product le înmulțește; tipul rezultatului trebuie precizat.
  • Iterator::filter: Păstrează doar elementele pentru care condiția dată returnează true; restul sunt sărite.
  • Iterator::any: any verifică dacă măcar un element îndeplinește condiția; all verifică dacă toate o îndeplinesc. Se opresc cât de repede pot.
  • Vec::len: len returnează numărul de elemente din vector; is_empty spune dacă vectorul nu are niciun element.