【发布时间】:2012-07-27 02:37:31
【问题描述】:
我正在编写一个算法来检查 C++ 中检查器中的重复移动,但我在使用 iterator 时遇到问题。
这是我的代码:
static std::list<char[8][8]> duplicates;
char checkForDuplicates[8][8];
for(char i = 0;i < 8;i++)
for(char j = 0;j < 8;j++)
checkForDuplicates[i][j] = board[i][j];
bool isDuplicate = false;
for(std::list<char[8][8]>::iterator it = duplicates.begin(); it != duplicates.end(); it++)
{
for(char i = 0;i < 8;i++)
{
for(char j = 0;j < 8;j++)
{
if(checkForDuplicates[i][j] != it->[i][j])
//do something
}
}
}
这行我特别需要帮助:
if(checkForDuplicates[i][j] != it->[i][j])
我正在尝试将列表中的一个数组元素与另一个数组元素进行比较,但我不知道如何使用list iterator 访问列表中的数组元素。任何人都可以帮助我提供示例和/或建议吗?
【问题讨论】:
-
我不认为您可以将数组存储在
std::list中,因为数组类型不是可复制构造或可分配的,这是在 STL 容器中存储类型所必需的两个要求。不过,也许他们在 C++11 中放松了这一点。
标签: c++ list multidimensional-array iterator