我想删除双端队列的元素。当你有一个包含结构的双端队列并且你想从后到前打印元素,但你不想打印具有相同结构元素的元素,你怎么做?
我有一个这样的结构:
struct New_Array {
array<array<int,4>,4> mytable;
int h;
};
双端队列中填充了前一个过程中的元素。 您想打印双端队列中的所有元素,但您打印的每个表都必须有一个唯一的 "h"。只有您找到的带有特定“h”的第一个表必须打印,不应打印具有相同“h”的其他表。我认为这也可以通过“查找”功能来实现。
从双端队列的后面开始,我们会发现“h”的值将是 0,并且它会在双端队列的前面增加它的值。
我试过这个:
void Find_Solution_Path(deque<New_Array> Mydeque)
{
while(Mydeque.size()>0)
{
New_Array y=Mydeque.back();
PrintBoard(y); //this is a function that prints the 4x4 array.
Mydeque.pop_back();
for(unsigned int i=0; i<Mydeque.size(); i++)
{
New_Array xxx=Mydeque[i];
if(xxx.h==y.h)
{
Mydeque.erase(Mydeque[i]);
}
}
}
}