Да.Несмотря на то, что это не делает векторы фиксированного размера (векторы могут быть изменены явно или неявно - например, используя push_back
или insert
).
Наконец, векторы можно просто назначить поверх.
Если вам нужны неровные вложенные векторы строгого типа фиксированного размера (urrfff с полным ртом):
#include <tuple>
#include <array>
using std::array;
using std::tuple;
typedef tuple<
array<T, 12>,
array<T, 3>,
array<T, 14>
> vec_collection;
С этим будет немного неудобнее работать, но если скоростьи гарантии размера контейнера имели существенное значение.
Обратите внимание, что в мире до TR1 (скажем, c ++ 98 с библиотекой c ++ 03), это было бы довольно близко к эквиваленту (но еще менее удобно работать):
struct vec_collection
{
T a[12];
T b[3];
T c[14];
};