C++ 访问向量<;向量<;char>&燃气轮机;元素作为行和列

C++ 访问向量<;向量<;char>&燃气轮机;元素作为行和列,c++,vector,matrix,std,C++,Vector,Matrix,Std,我正在尝试使用 vector<vector<char> > matrix; 如果我想在第一行添加字符*,我可以执行以下操作: &word_square[0][0] 这将给我一个指向第一行的指针,这个指针可以用作C字符数组(即“abc”) 如果我想用同样的方法得到第一列呢? 有没有可能,或者我得花一个月的时间 int i =0; string column; while(matrix[i][0] != '\0' ) { column.push_back(ma

我正在尝试使用

vector<vector<char> > matrix;
如果我想在第一行添加字符*,我可以执行以下操作:

&word_square[0][0]
这将给我一个指向第一行的指针,这个指针可以用作C字符数组(即“abc”)

如果我想用同样的方法得到第一列呢? 有没有可能,或者我得花一个月的时间

int i =0;
string column;
while(matrix[i][0] != '\0' )
{
  column.push_back(matrix[i][0]);
  i++;
}
我很想得到一个更干净的解决方案,就像我在上面所做的那样。 初始化一个字符串只是为了得到我需要的列,我已经有了它,这不是很好。此外,这会减慢我的进程


非常感谢那些提供帮助的人。

使用
向量
,您无法保证内部向量将其数据连续存储在内存中,这意味着除非手动复制数据,否则不可能有一个按列顺序指向元素的
char*

不可能有一个向量向量。您最好编写自己的类来返回代理对象。

您可以按照自己感兴趣的内容来做一些事情。它们使用连续内存,片管理对原始数据对象的访问,因此不需要复制。

好的,谢谢。太糟糕了,我需要复制的开销来获取列。关于行,我使用它们的方式可以吗?是的,您可以保证一个向量的字符连续存储在内存中,或者您甚至可以只执行
word\u square[0]。data()
谢谢,您知道我如何为列执行此操作吗?也许使用其他的数据结构?没有复制的方法真的没有办法,因为你基本上想要拥有你的蛋糕,同时也让它吃,同时把字符按顺序排列,同时在列顺序中。在C++中,有没有办法我可以在没有拷贝开销的情况下做我想做的事情?
int i =0;
string column;
while(matrix[i][0] != '\0' )
{
  column.push_back(matrix[i][0]);
  i++;
}