【发布时间】:2011-02-21 22:10:46
【问题描述】:
我正在尝试使用一个
vector<vector<char> > matrix;
作为一个实际的矩阵。
matrix 初始化为 '\0' 并在此过程中被填充。
让我们想象在某个时间点我处于这种情况:
0 1 2 3
0 a b c \0
1 b b \0 \0
2 c \0 \0 \0
3 \0 \0 \0 \0
如果我想在第一行添加一个 char *,我可以这样做:
&word_square[0][0]
这会给我一个指向第一行的指针,我可以将其用作 C 字符数组(即“abc”)
如果我想以相同的方式获取第一列怎么办? 有可能还是我必须用 for 来做?
int i =0;
string column;
while(matrix[i][0] != '\0' )
{
column.push_back(matrix[i][0]);
i++;
}
我很想得到一个更清洁的解决方案,就像我在上面对行所做的那样。 初始化一个字符串只是为了获取我需要的列,我已经有了它不是很好。此外,它会减慢我的进程。
非常感谢那些愿意提供帮助的人。
【问题讨论】:
-
在 C++ 中,有没有什么办法可以在没有复制开销的情况下做我想做的事情?