2
respostas

O que seria mais eficiente ?

Estou com uma dúvida em relação à eficiência do programa. No caso, o professor deu a função:

bool letra_existe (char chute){
    for (int i = 0; i < palavra_secreta.size();i++){
        if (chute == palavra_secreta[i]){
            return true;
        }
    }
    return false;
}

E ndentro da funlão ele usa a variavel global. O que seria mais eficiente de fato, a forma que o professor fez ou criar um outro parâmetro de entrada para a função cujo input seria a "palavra secreta?" Por exemplo:



bool confereLetra(char chute, std::string letra_secreta)
{
    for(char letra : letra_secreta)
    {

        if(chute == letra)
        {
            return true;
        }

    }

    return false;
}

Existe algum ganho computacional entre as duas funções?

2 respostas

Olá, Hector! Tudo belezinha?

Ambas as funções são eficientes e fazem a mesma coisa. A diferença é que a primeira função usa uma variável global "palavra_secreta" e a segunda recebe essa variável como parâmetro.

Em termos de desempenho, a diferença é mínima. Mas é sempre uma boa prática evitar variáveis globais, pois podem causar problemas de legibilidade e manutenção do código. Além disso, a segunda função é mais flexível, pois pode ser usada com qualquer palavra secreta, enquanto a primeira só funciona com a variável global definida.

Portanto, recomendo que você use a segunda função, pois é mais organizada e fácil de entender. Mas, se você estiver trabalhando em um projeto pequeno e não tiver muitas variáveis globais, a primeira função também é uma opção viável.

Espero ter ajudado. Qualquer outra dúvida me coloco a disposição.

Abraços. Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!
Removido a pedido do usuario.