Verificando Elementos
Parte da seção Lógica & Fluxo do Journey de C++ da Coddy — lição 37 de 56.
Ao trabalhar com conjuntos (sets), você frequentemente precisa verificar se um elemento específico existe antes de realizar operações nele. O método .count() fornece uma maneira simples de verificar se um elemento está presente em seu conjunto.
Assim como com mapas, o método .count() retorna 1 se o elemento existir no conjunto e 0 caso contrário. Isso o torna perfeito para verificações condicionais:
std::set<int> numbers = {10, 20, 30};
if (numbers.count(20)) {
std::cout << "Found 20 in the set!" << std::endl;
} else {
std::cout << "20 is not in the set" << std::endl;
}Esta abordagem é muito mais segura do que tentar acessar elementos diretamente, especialmente quando você não tem certeza se eles existem. Você pode usar .count() para validar a entrada do usuário, evitar erros ou tomar decisões com base no que está armazenado atualmente em seu conjunto.
Desafio
FácilCrie um programa que demonstre como verificar com segurança a existência de elementos em um std::set antes de realizar operações neles. Este desafio testará sua compreensão do método .count() para verificação de elementos.
As seguintes entradas serão fornecidas:
- Um número inteiro
nrepresentando o número de elementos a serem adicionados inicialmente ao conjunto - Em seguida,
nnúmeros inteiros para serem inseridos no conjunto - Um número inteiro
mrepresentando o número de elementos a serem pesquisados - Em seguida,
mnúmeros inteiros para verificar a existência no conjunto
Seu programa deve:
- Criar um
std::set<int>vazio - Ler o número de elementos a serem adicionados e inseri-los no conjunto usando
.insert() - Ler o número de elementos a serem pesquisados
- Para cada elemento de pesquisa, use o método
.count()para verificar se ele existe no conjunto - Imprimir mensagens apropriadas com base no fato de cada elemento ter sido encontrado ou não
- Após todas as pesquisas, imprimir o número total de elementos que foram encontrados
Use o seguinte formato de saída exato:
Para cada resultado de pesquisa:
Searching for [number]: FoundPara elementos não encontrados:
Searching for [number]: Not foundResumo ao final:
Total found: [count] out of [total_searches]Use numbers.count(searchValue) para verificar se um elemento existe no conjunto. Se retornar 1, o elemento existe; se retornar 0, o elemento não existe. Mantenha um contador para rastrear quantos elementos foram encontrados com sucesso durante as operações de pesquisa.
Experimente você mesmo
#include <iostream>
#include <set>
using namespace std;
int main() {
// Lê o número de elementos a serem adicionados ao conjunto
int n;
cin >> n;
// Cria um conjunto vazio
set<int> numbers;
// Lê e insere n elementos no conjunto
for (int i = 0; i < n; i++) {
int element;
cin >> element;
numbers.insert(element);
}
// Lê o número de elementos a serem pesquisados
int m;
cin >> m;
int foundCount = 0;
// TODO: Escreva seu código abaixo
// Para cada elemento de busca:
// 1. Lê o valor de busca
// 2. Usa numbers.count(searchValue) para verificar se ele existe
// 3. Imprime a mensagem apropriada
// 4. Atualiza foundCount se o elemento for encontrado
// Imprime o resumo
cout << "Total found: " << foundCount << " out of " << m << endl;
return 0;
}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
1Ponteiros e Memória
O que é um Ponteiro?Operador de EndereçoOperador de DesreferenciaçãoPonteiros NulosPonteiros e ArraysMemória Dinâmica com 'new'Liberando Memória com 'delete'Recapitulação - Prática com Ponteiros2Vetores (Arrays Dinâmicos)
Introdução ao std::vectorCriando um VetorAdicionando ElementosAcessando ElementosTamanho do VetorIterando com um Loop ForLoop For Baseado em IntervaloRemovendo ElementosRecapitulação - Operações com Vetores3Projeto: Ferramenta de Lista de Tarefas
Visão Geral do ProjetoAdicionando uma Tarefa6Conjuntos (Elementos Únicos)
Apresentando o std::setCriar Conjunto e Adicionar ElementosVerificando ElementosRemovendo ElementosIterando sobre um ConjuntoRecapitulação - Números Únicos