С stl::vector:
vector<int> v(1);
v[0]=1; // No bounds checking
v.at(0)=1; // Bounds checking
Есть ли способ отключить проверку границ, не переписывая все at()
как []
? Я использую стандартную библиотеку GNU C++.
Изменить: я изменил at()
на []
в области, где я подозревал узкое место, и это значительно сократило время вычислений. Однако, поскольку я чередую разработку кода и проведение экспериментов с ним, я хотел бы включить проверку границ во время разработки и отключить ее, когда я запускаю эксперименты по-настоящему. Я думаю, что совет Андрея - лучшее решение.
at()
на[]
и установить точку останова, чтобы убедиться, что все экземпляры были заменены. Не то, чтобы одно проскальзывание было бы катастрофой, проблема заключается только в производительности, верно? - person Potatoswatter   schedule 05.03.2010[]
. В противном случае пусть будет. - person Adam Rosenfield   schedule 05.03.2010at
, а только горячие точки. :-П - person Chris Jester-Young   schedule 05.03.2010