本文整理汇总了C++中Stack::Elements方法的典型用法代码示例。如果您正苦于以下问题:C++ Stack::Elements方法的具体用法?C++ Stack::Elements怎么用?C++ Stack::Elements使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Stack
的用法示例。
在下文中一共展示了Stack::Elements方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: NQueens
void NQueens(int size, int start_x, int start_y, Stack<Position>& ps, set<set<Position> >& solutions) {
if (ps.Size() == size) {
set<Position> solution;
for (int i = 0; i < size; ++i) {
solution.insert(ps.Elements()[i]);
}
solutions.insert(solution);
return;
}
for (int i = 0; i < size; ++i) {
for (int j = 0; j < size; ++j) {
Position p(i, j);
if (!ReachesAny(p, ps)) {
int next_x = start_x + 1;
int next_y = start_y;
if (next_x == size) {
next_x = 0;
next_y++;
}
ps.Push(p);
NQueens(size, next_x, next_y, ps, solutions);
ps.Pop();
}
}
}
}
示例2: ReachesAny
bool ReachesAny(const Position& p, const Stack<Position>& s) {
const Position* elems = s.Elements();
for (int i = 0; i < s.Size(); ++i) {
if (p.Reaches(elems[i])) {
return true;
}
}
return false;
}