この種のスタックを含む Deque があります。
struct New_Array {
array<array<int,4>,4> mytable;
int h;
};
このスタックでは、2 つの異なる配列が同じ値の h を持つ場合があります。
deque<New_Array> Mydeque;
また、両端キュー ( の値) に異なる h がいくつあるかも知っていますsteps
。また、deque( ) にはいくつのスタクトがありますかMydeque.size()
。
hごとに1つの配列を出力する必要があります。開始h=0
までh=steps
(ステップは既知のint
値です)。印刷される各配列は、deque の最後に近い方でなければなりません。
私はこのようなことを試しました:
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
EDIT:deque
ソートされていません。それぞれh
に anを出力するarray
必要があります。これは、現時点で両端キューの終わりに近い array
ものである必要があります。