如何创建具有固定列长和动态行长的二维矢量?

时间:2019-05-16 06:29:14

标签: c++ vector

我有一个char类型的二维矢量,如下所示:

     std::vector< std::vector<char> > Input_Vector ;

我希望行数未知且列数固定。因此,向量的每一行将包含3个单元格。

1 个答案:

答案 0 :(得分:1)

鉴于您知道行始终每个都有3个单元格,因此可以使用std::array<char, 3>作为元素类型。 std::array可以像常规向量一样被索引,但是在内部它只是一个c样式的数组。这意味着使用它没有任何开销,并且与向量vector相比,它也具有更好的缓存位置。

它也可以使用类似结构的initializer-list来创建!

std::vector<std::array<char, 3>> vect;

vect.push_back({'a', 'b', 'c'}); // This works 

char c = vect[0][2]; // gets 'c'