Estoy trabajando en un código que normaliza una gran cantidad de datos. Al final del procesamiento, se escribe un número de pares clave = "valor" en un archivo. .La implementación de escapada más rápida?
La parte "valor" puede ser cualquier cosa, por lo que en el punto de salida de los valores deben tener ningún comillas incrustadas escaparon como \"
En este momento, estoy usando la siguiente:
outstream << boost::regex_replace(src, rxquotesearch, quoterepl);
// (where rxquotesearch is boost::regex("\"") and quoterepl is "\\\\\"")
Sin embargo, gprof muestra que estoy gastando la mayor parte de mi tiempo de ejecución en este método, ya que tengo que llamarlo para cada valor.
Tengo curiosidad si hay una manera más rápida que esta. no puedo usar std :: replace ya que estoy reemplazando un caracter por dos.
Gracias por cualquier consejo.
¿debería reservar antes del.length + 10% más o menos? suponiendo que haya al menos una cita incrustada, tendremos que crecer? – DeusAduro
Sí, fudge con eso según sea necesario. –
Entonces, tengo curiosidad sobre el comentario que publiqué a continuación. ¿Alguna idea de por qué esto sería más rápido que la salida de cada personaje directamente a la secuencia dentro del ciclo for? – Joe