Если размер и содержимое действительно никогда не меняются после инициализации, используйте const vector
. Если содержимое вообще интересно, это означает, что вам придется использовать либо конструктор копирования, либо конструктор, который принимает пару итераторов.
Маловероятно, что многое будет оптимизировано, но стоит попробовать [*]. Это заставляет ваш код быть константно-корректным, то есть то, что вы не только не должны изменять вектор, ваш код должен составлять особый вид proof для компилятора, который (исключая неразумное приведение) Вы не изменяете вектор.
Это дополнительная работа, если ваш код уже не является константно-корректным, но по мере продвижения компилятор скажет вам, что нужно изменить.
[*] Под этим, как я полагаю, я имею в виду, что в качестве общей практики стоит использовать const
, где это возможно. Однако причины этого не имеют ничего общего с производительностью. Если вы просто хотите ускорить выполнение определенной программы, есть более эффективное использование времени разработчика, чем перестройка кода, который не является константно-корректным, чтобы быть константно-корректным. Но если предположить, что это скомпилировано, то не нужно вносить изменения.