Con STL :: vector:límites Desactivación de la comprobación de C++ vectores
vector<int> v(1);
v[0]=1; // No bounds checking
v.at(0)=1; // Bounds checking
¿Hay una manera de desactivar la comprobación de límites sin tener que volver a escribir todo lo at()
[]
? Estoy usando la biblioteca GNU Standard C++.
Editar: Me cambió at()
-[]
en la zona donde yo sospechaba un cuello de botella, y reduce significativamente el tiempo de cálculo. Sin embargo, dado que iteraré entre desarrollar el código y ejecutar experimentos con él, me gustaría habilitar la verificación de límites durante el desarrollo y desactivarlo cuando ejecuto los experimentos de forma real. Creo que el consejo de Andrew es la mejor solución.
¿Con qué fin? Puede haber una mejor manera. –
Debería poder usar una expresión regular para reemplazar 'at()' por '[]', y establecer un punto de interrupción para ayudar a verificar que todas las instancias hayan sido reemplazadas. No es que ese deslizamiento sería un desastre, la preocupación es solo el rendimiento, ¿verdad? – Potatoswatter
¿Por qué querrías hacer esto? Si su respuesta es el rendimiento, por favor dígame que ha perfilado y que este es su cuello de botella. Si ese es el caso, entonces sí, vuelva a escribir su at() s como '[]'. De lo contrario, déjalo estar. –