【发布时间】:2020-05-12 06:08:08
【问题描述】:
我有这个函数,它检查二维 std::string 数组中的所有行是否相等:
template <int sizeElements, int sizeArrays>
bool CheckEquality2dArray(const array<array<string, sizeElements>, sizeArrays> &my2dArray)
{
if (equal(my2dArray.begin() + 1, my2dArray.end(), my2dArray.begin()))
{
return true;
}
else
{
return false;
}
}
我正在使用模板,因此我可以传递列数(每行/数组的元素)和行数(std::arrays)。然后我可以在任何 2d std::array 上使用该函数。
我的问题是:如何传递每行的元素数?
二维 std::array "myFirst2dArray" 示例:
if (checkArray.CheckEquality2dArray</*INSERT SOMETHING HERE*/, (int)myFirst2dArray.size()>(myFirst2dArray) == true)
{
//Do something
}
我不能做类似(int)myFirst2dArray[0].size() 的事情。我知道我可以通过使用向量来解决这个问题,但是有没有办法使用数组?
【问题讨论】:
-
顺便说一下,
if (condition) return true; else return false;等价于return condition;。 -
@Melebius 我的宠物讨厌。当教授解释这一点时,我仍然记得我的一些同学脸上空白的表情。
-
我不知道你能做到这一点xD
标签: c++ arrays multidimensional-array