Intenta hacer esto. Escriba una clase llamada algo así como file_container
, que se puede instanciar así: file_contaner f("somefile.txt");
. Haga de esta clase un contenedor de estilo STL adecuado (con iteradores y demás), para que pueda usar esta clase de esta manera:
total automático = std :: acumular (f.begin (), f.end (), 0);
o así
tamaño_t total = 0;
para (auto & c: f)
total + = tamaño_t (c);
- ¿Por qué me duele la garganta cuando hablo un idioma extranjero?
- Soy un hombre blanco británico. ¿Experimentaré algún prejuicio en China?
- Soy un estudiante de secundaria que decide entre Carnegie Mellon SCS y Caltech para estudiantes universitarios de CS. ¿Cómo debo hacer para tomar mi decisión?
- Necesito crear una pieza de goma personalizada para una idea de producto. ¿Qué herramientas están disponibles para diseñar y moldear una pieza de goma intrincada?
- ¿Por qué me resulta más difícil tocar una guitarra clásica con los nudillos de mi mano derecha doblada?
el total debe contener la suma de todos los bytes en el archivo. Para hacerlo un poco más difícil, suponga que no puede cargar el archivo completamente en la memoria. Digamos que tiene un búfer de solo 100 bytes de longitud. Ejecute este código sobre un archivo enorme, vea cómo funciona. Compruebe si el “total” contendrá el valor correcto (no se desborda y el value_type no está firmado).
Si lo hace, tendrá una muy buena comprensión de STL. Luego intente hacer su código multiproceso. Procese varios archivos al mismo tiempo, o el mismo archivo desde diferentes hilos.