我有一个包含这种结构的双端队列。
struct New_Array {
array<array<int,4>,4> mytable;
int h;
};
在这个结构中,2 个不同的数组可能具有相同的 h 值。
deque<New_Array> Mydeque;
我也知道双端队列中有多少不同的 h(的值steps
)。以及 deque( Mydeque.size()
) 中有多少结构。
我需要为每个 h 打印一个数组。从h=0
直到开始h=steps
(步数是一个已知int
值)。每个要打印的数组必须更接近双端队列的末尾。
我试过这样的事情:
void foo(deque<New_Array> Mydeque, int steps)
for(int i=0; i<steps; i++)
{
deque<New_Array>::iterator it;
it = find(Mydeque.begin(),Mydeque.end(),i);
PrintBoard(*it); // This if a function where you enter the New_Array struct
// and it prints the array
}
}
以上给了我:error C2679: binary '==' : no operator found which takes a right-hand operand of type 'const bool' (or there is no acceptable conversion)
或者是这样的:
void foo(deque<New_Array> Mydeque, int steps)
for(int i=0; i<steps; i++)
{
deque<New_Array>::iterator it;
for(unsigned int j=0;j<Mydeque.size();j++)
{
it = find_if(Mydeque.begin(),Mydeque.end(),Mydeque[j].h==i);
PrintBoard(*it);
break;
}
}
以上给了我:error C2064: term does not evaluate to a function taking 1 arguments
编辑:deque
未排序。对于每个应打印h
的。array
这array
应该是此时更接近双端队列末尾的那个。