Не удается подключиться к демону Docker в macOS

Вы можете ожидать, что большинство операций над строкой std :: (например, find) будут максимально оптимизированы, поэтому они, скорее всего, будут выполняться, по крайней мере, так же, как и чистая C-копия.

Также стоит отметить, что итераторы std :: string довольно часто отображают указатели в базовый массив. Таким образом, любой алгоритм, который вы разрабатываете поверх итераторов, по существу идентичен тому же алгоритму в верхней части char * с точки зрения производительности.

Вещи, которые следует учитывать, например, operator[] - большинство реализаций STL не выполняют проверку границ и должны перевести это на ту же операцию в базовый массив символов. AFAIK STLPort может дополнительно выполнить проверку границ, и в этот момент этот оператор будет немного медленнее.

Итак, что делает использование std :: string для вас? Это освобождает вас от ручного управления памятью; изменение размера массива становится проще, и вам обычно приходится меньше думать о освобождении памяти.

Если вы беспокоитесь о производительности при изменении размера строки, есть функция reserve, которую вы можете найти полезной.

152
задан Community 23 May 2017 в 12:18
поделиться