当每个行和列的大小可能不同时,如何确定C ++中二维数组的大小?
我正在尝试创建一个名为Parser
的函数来读取数组。到目前为止,我有:
// Function: Parser.
// Description: First, it reads the data in the array.
// Then, it uses the data in the array.
void Parser (char ch[][]) {
for (int i = 0; i < (sizeof (ch) / sizeof (ch [0])); ++i) {
// TO DO - Add content.
}
}
数组ch
可以包含以下元素:
{
{
'v', 'o', 'i', 'd'
},
{
'i', 'n', 't'
},
}
有解决方案吗?
答案 0 :(得分:4)
有很多方法
使用模板:
template <typename T, size_t N, size_t M>
void Parser (T (&ch)[N][M])
{
}
答案 1 :(得分:0)
我所做的是,将ch
设为vector
。我在第一个ch
循环中将i
的大小传递给迭代器for
,然后将ch[i]
的大小传递给迭代器j
。
新代码是:
// Function: Parser.
// Description: First, it reads the data in the vector.
// Then, it uses the data in the vector.
void Parser (vector <vector <char>> ch) {
for (int i = 0; i < ch.size (); ++i) {
for (int j = 0; j < ch[i].size (); ++j) {
// TO DO - Add content.
}
}
}