Então, agora estou trabalhando com alguns algoritmos C ++ e preciso mostrar algumas informações sobre o uso de memória, mas o problema é que, quando você pergunta o, sizeof(something)
vai obtê-lo em bytes, o que é meio inútil para um usuário ler durante o trabalho.
Quer dizer, eu ficaria chateado se um programa dissesse que está usando 33285996544 bytes da minha memória .
Então, fiz esta pequena função para arredondá-la para um tamanho compreensível e retornar como uma string formatada, dê uma olhada:
#include <string>
string hByte(unsigned int bytes){
string r;
if (bytes <= 0) r = "0 Bytes";
else if (bytes >= 1073741824) r = to_string(bytes/1073741824) + " GBytes";
else if (bytes >= 1048576) r = to_string(bytes/1048576) + " MBytes";
else if (bytes >= 1024) r = to_string(bytes/1024) + " KBytes";
return r;
};
editado: alterado para unsigned int
no argumento.