1
resposta

[Sugestão] forma mais pratica de abrir arquivos com fstream

Em vez abrir e fechar o arquivo manualmente, você pode apenas escrever assim:

std::ifstream arquivo("Palavras.txt");

desse modo já é aberto o arquivo, e além disso, ao final da função o arquivo será automaticamente fechado. o meu código ficou dessa forma:

std::vector<std::string> LerArquivo()
{
    std::vector<std::string> returnVec;
    std::ifstream arquivo("Palavras.txt"); 

    //isso se estende para if(!arquivo.is_open()) exit(0);
    check(arquivo.is_open())

    //uint16_t é quase a mesma coisa que int
    uint16_t NumeroPalavras;
    arquivo >> NumeroPalavras;   
    //reserve reserva uma certo tamanho para adicionar palavras.
    returnVec.reserve(NumeroPalavras);

    for (size_t i = 0; i < NumeroPalavras; i++)
    {
        std::string palavra;
        arquivo >> palavra;
        //faz quase a mesma coisa que o push_back
        //mas em algums casos ele é mais eficiente
        returnVec.emplace_back(palavra);
    } 
    return returnVec;
}
1 resposta

Muito bom. Eu recomendo usar o padrão camelCase para funções, ou seja: colocar a função com o nome lerArquivo. Para evitar hardcoding, também é bom colocar o nome do arquivo que deve ser lido nos parâmetros, mas passando por referência para evitar cópia:

std::vectorstd::string lerArquivo(const std::string& arquivo)

Só ressalto aqui que uint16 não é o mesmo que int, como diz o comentário.