C++ C++;-使用堆栈和转发列表的n-Queen问题

C++ C++;-使用堆栈和转发列表的n-Queen问题,c++,stl,stack,n-queens,forward-list,C++,Stl,Stack,N Queens,Forward List,我必须使用标准模板库和解决n-Queen问题。 我已经实现了回溯算法和解决方案的打印,我只需要检查皇后之间是否存在冲突。 我必须使用的函数返回一个布尔值,并将const std::stack&s作为参数。 temp是一个临时堆栈,它等于s(我不能修改s,因为它是const),myList是一个转发列表。我使用STL中的push_front将堆栈的第一个元素添加到列表中,使用insert_after将其他元素添加到列表中:这是我第一次使用,我不确定这是否正确 请问,有人能建议我如何用转发列表检查冲

我必须使用标准模板库
解决n-Queen问题。 我已经实现了回溯算法和解决方案的打印,我只需要检查皇后之间是否存在冲突。 我必须使用的函数返回一个布尔值,并将
const std::stack&s
作为参数。
temp
是一个临时堆栈,它等于
s
(我不能修改
s
,因为它是
const
),
myList
是一个转发列表。我使用STL中的
push_front
将堆栈的第一个元素添加到列表中,使用
insert_after
将其他元素添加到列表中:这是我第一次使用
,我不确定这是否正确

请问,有人能建议我如何用转发列表检查冲突吗?非常感谢:)

bool冲突=false;
标准:堆栈温度=s;
无符号整数m=临时大小();
std::转发列表myList;
std::forward_list::iterator first=myList.begin();
myList.push_front(temp.top());
temp.pop();

对于(unsigned int i=1;iA棋盘有15+15条对角线,加上8+8条直线/列。我想你需要4个数组,每个方向一个,来标记每个女王占据的领土。这样你就可以很容易地看到是否有任何后续女王在冲突的领土上。也许是我,但我不明白堆栈代表的是什么。在fa中,不仅仅是你ct我不明白所提供的任何代码与检查n-Queen问题中的冲突有何关系。但可能是由于缺乏解释,可能这些无符号整数是棋盘位置或其他什么。
    bool conflict = false;
    std::stack<unsigned int> temp = s;
    unsigned int m = temp.size();
    std::forward_list<unsigned int> myList;
    std::forward_list<unsigned int>::iterator first = myList.begin();

    myList.push_front(temp.top());
    temp.pop();

    for(unsigned int i = 1; i<m; ++i)
    {
        myList.insert_after(first, temp.top());
        temp.pop();
    }

    //CHECK CONFLICTS

    return conflict;