Está en la página 1de 2

La biblioteca standard (STL) Da soporte a caractersticas del lenguaje, como gestin de memoria e informacin de tipos en tiempo de ejecucin.

. Proporciona informacin sobre aspectos dependientes de la implementacin del lenguaje, como p.ej. el float ms grande. Ofrece funciones que no se pueden implementar de manera ptima en el lenguaje para todos los sistemas, como sqrt() o memmove(). Proporciona caractersticas portables como listas, tablas (maps), funciones de ordenacin, y corrientes de entrada/salida (streams). Da un marco para extender las caractersticas que ofrece. Es el fundamento para otras bibliotecas.

Organizacin de la STL Contenedores: vector, list, dequeue, queue, stack, map, set, bitset. Utilidades: utility, functional, memory, ctime. Iteradores: iterator. Algoritmos: algorithm, cstdlib. Diagnstico: exception, stdexcept, cassert, cerrno. Strings: string, cctype, cwctype, cstring, cwchar, cstdlib. Entrada/Salida: iosfwd, iostream, ios, streambuf, istream, ostream, iomanip, sstream, cctype, fstream, cstdio, cwchar. Localizacin: locale, clocale. Soporte del lenguaje: limits, climits, cfloat, new, typeinfo, exception, cstddef, cstdarg, csetjmp, cstdlib, ctime, csignal. Numrico: complex, valarray, numeric, cmath, cstdlib. Entrada/Salida a Ficheros #include <fstream> ofstream of; of.open("prueba.txt"); of << "Primera linea del fichero" << endl; of << "Esta es la linea numero 2 del fichero"; of.close(); char s[100]; ifstream f; f.open("prueba.txt"); do { f.getline(s, 99); // Lee 99 como mximo cout << s << endl; while (!f.eof()); f.close();

Consejos para programadores C Las macros casi nunca son necesarias en C++, se pueden usar en su lugar: const, inline, templates y namespaces. No usar malloc(), usar new en su lugar. Usar clases de la librera estndar como vector o string. Evitar el uso de void *, aritmtica de punteros, unions y casts. Minimizar el uso de arrays y strings al estilo de C (char *). Usar en su lugar vector y string. Consejos Trata de que la estructura de tu programa refleje fielmente las ideas de tu solucin. Si puedes pensar en algo como una idea separada, hazla una clase. Si puedes pensar en algo como una entidad separada, hazla objeto de alguna clase. Si dos clases tienen la misma interfaz, haz la interfaz una clase abstracta. Si la implementacin de dos clases tienen algo significativo en comn, haz eso comn una clase base. Si una clase es un contenedor de objetos, hazla una plantilla. Si una funcin implementa un algoritmo para un contenedor, conviertela en una plantilla de funcin que implemente el algoritmo para una familia de contenedores. Consejos Si un conjunto de clases, plantillas, etc, estn relacionados lgicamente, ponlos juntos en un espacio de nombres. Evita usar: Datos globales (usa miembros de clases). Funciones globales. Atributos pblicos. No utilices un atributo para indicar el tipo de una subclase, usa funciones virtuales. No abuses de las funciones inline, excepto para obtener una optimizacin significativa.