Menu
Coddy logo textTech

Iterando sobre um Conjunto

Parte da seção Lógica & Fluxo do Journey de C++ da Coddy. Lição 39 de 56.

Agora que você pode adicionar, verificar e remover elementos de um conjunto, vamos aprender a iterar por todos os elementos de um conjunto. O loop for baseado em intervalo oferece a maneira mais clara de visitar cada elemento.

Veja como iterar através de um set:

std::set<std::string> fruits = {"banana", "apple", "cherry"};

for (const std::string& fruit : fruits) {
    std::cout << fruit << std::endl;
}

O recurso mais importante a lembrar é que os conjuntos mantêm automaticamente a ordem classificada. Quando você percorre o conjunto de frutas acima, a saída será "apple", "banana", "cherry" — não a ordem em que você os inseriu. Essa ordenação automática é uma das principais vantagens de usar std::set.

Essa iteração ordenada torna os sets perfeitos para exibir dados em ordem alfabética ou numérica sem a necessidade de ordenar manualmente. Quer você esteja trabalhando com números, strings ou outros tipos comparáveis, o set sempre os apresentará em sua sequência ordenada natural.

challenge icon

Desafio

Fácil

Crie um programa que demonstre o recurso de ordenação automática de std::set adicionando palavras a um conjunto e, em seguida, iterando por elas para exibi-las em ordem alfabética. Este desafio testará sua compreensão dos loops for baseados em intervalo com conjuntos e de como os conjuntos mantêm a ordem classificada.

As seguintes entradas serão fornecidas:

  • Um número inteiro n representando o número de palavras a serem adicionadas ao conjunto
  • Em seguida, n strings representando as palavras a serem inseridas no conjunto

Seu programa deve:

  1. Criar um std::set<std::string> vazio
  2. Ler o número de palavras a serem adicionadas
  3. Usar um loop para ler cada palavra e inseri-la no conjunto usando o método .insert()
  4. Usar um loop for baseado em intervalo para iterar pelo conjunto e imprimir cada palavra
  5. Após imprimir todas as palavras, exibir a quantidade total de palavras únicas no conjunto

Use o seguinte formato exato de saída:

Para cada palavra no conjunto (em ordem alfabética):

[word]

Resumo ao final:

Total unique words: [count]

Use um loop for baseado em intervalo com a sintaxe for (const std::string& word : wordSet) para iterar por todos os elementos do conjunto. O conjunto apresentará automaticamente as palavras em ordem alfabética, demonstrando uma das principais vantagens de usar std::set. Lembre-se de que, se palavras duplicadas forem fornecidas na entrada, elas serão automaticamente ignoradas pelo conjunto; portanto, somente palavras únicas serão exibidas.

Experimente você mesmo

#include <iostream>
#include <set>
#include <string>
using namespace std;

int main() {
    // Leia o número de palavras
    int n;
    cin >> n;
    
    // Crie um conjunto vazio para armazenar palavras
    set<string> wordSet;
    
    // TODO: Escreva seu código aqui
    // Leia n palavras e insira-as no conjunto
    // Use um loop for baseado em intervalo para iterar pelo conjunto e imprimir cada palavra
    // Imprima a contagem total de palavras únicas
    
    return 0;
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo

Pratique por conta própria: Compilador de C++ online