0

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

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

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

4

1 回答 1

1

鉴于您知道每行总是有 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'
于 2019-05-16T20:42:11.130 回答