首页 > 解决方案 > 如何创建具有固定列长和动态行长的二维向量?

问题描述

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

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

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

标签: c++vector

解决方案


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

它也可以用初始化列表之类的结构来创建!

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

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

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

推荐阅读