Мои комментарии к этому ответу заставили меня задуматься о проблемах состроения и сортировки. Я немного поиграл и уменьшил свои проблемы до того, что этот код:
#include <vector>
int main() {
std::vector <const int> v;
}
не будет компилироваться - вы не можете создать вектор const int. Очевидно, я должен был знать это (и интеллектуально я это сделал), но мне никогда не приходилось создавать такую вещь раньше. Однако мне кажется, что это полезная конструкция, и я задаюсь вопросом, существует ли какой-либо путь вокруг этой проблемы - Я хочу добавить вещи к вектору (или что-то еще), но они не должны меняться после добавления.
Наверное, это довольно сложное решение, но я никогда не думал об этом раньше. Вероятно, я не должен был упоминать сортировку (я могу задать еще один вопрос об этом, см. этот в связи с трудностями задавать вопросы). Мой реальный случай использования базы - это примерно так:
vector <const int> v; // ok (i.e. I want it to be OK)
v.push_back( 42 ); // ok
int n = v[0]; // ok
v[0] = 1; // not allowed