Библиотека стандартных контейнеров, таких, как Vector, List, Map.
Чем лучше? Я не говорил, что лучше, я говорил, чтона других принципах. Буду выкладывать информацию (и по эффективности тоже), что-то отвечу предметно, и Вы сможете сравнить.

В части сравнения предложенного примера с vec.data[i] супротив operator[] есть два момента:
1. operator[] имеет определенный overhead, т.к. это метод, и быстродействие доступа к элементам вектора хуже, чем доступ к элементам массива c++;
2. доступ к элементам vec.data[] - это доступ через указатель на массив с проверкой границ, что дает нам новой качество (например, защита от кибер-атак на переполнение стека);
3. как я покажу впоследствии (в библиотеке есть документ Bench-Marks.odc), во-втором случае измеренный доступ оказался быстрее.