Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [C++] codifica di huffmann

    salve a tutti ragazzi, avrei bisogno del vostro aiuto!
    in pratica devo realizzare un programma per l'università in c++ per codificare e decodificare un file qualsiasi.

    il dubbio è:
    utilizzo la classe fstream e i relativi metodi oppure procedo con le funzioni del C (fopen,fread,ecc)?
    la fstream leggendo attraverso il metodo GET() è un pò lenta come soluzione o è la stessa cosa?

    grazie....

  2. #2

    Re: [C++] codifica di huffmann

    Originariamente inviato da tenimrak
    il dubbio è:
    utilizzo la classe fstream e i relativi metodi oppure procedo con le funzioni del C (fopen,fread,ecc)?
    la fstream leggendo attraverso il metodo GET() è un pò lenta come soluzione o è la stessa cosa?
    Benvenuto nel forum di HTML.it

    La scelta del linguaggio tra C e C++ dipende essenzialmente dalle esigenze che hai: sicuramente la gestione con fstream in C++ è più agevole rispetto al C, tuttavia per quanto riguarda la velocità di esecuzione C e l'Assembly (soprattutto) sono imbattibili, così come saprai frequentando un corso universitario inerente la programmazione in ambito mainstream.

  3. #3
    Ni... in linea teorica gli fstream potrebbero anche essere più veloci delle equivalenti funzioni C, dato che in genere offrono maggiori possibilità di inlining del codice (che tuttavia vecchi compilatori non erano in grado di sfruttare in maniera adeguata). In linea di massima, quindi stream C e C++ vanno più o meno alla stessa velocità (specie per input "raw", dove si tratta semplicemente di tenere un buffer tra la syscall read e la get/fgets).
    Quanto all'assembly, dipende da cosa fai - se usi la syscall read (o la equivalente ReadFile su Windows) direttamente ti eviti il buffer di input della libreria standard, il che può essere un bene come un male (per input a grossi blocchi probabilmente un bene, per tanti input di dimensioni ridotte può invece essere peggio, dato che ogni chiamata a read/ReadFile fa trapping nel kernel).

    In ogni caso, in generale per l'input raw tutte queste considerazioni sono sostanzialmente inutili, dato che il collo di bottiglia in genere è l'IO vero e proprio.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Grazie ragazzi alla fine ho optato per la per il metodo get della fstream perché provando con file di varie dimensioni il tempo di risoluzione sembra non essere rilevante. Ora devo solamente cimentarmi nella costruzione dell' albero! Qualche buon link di spunto? È proprio difficile trovare delle spiegazioni precise sulla cosa!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.