本文整理汇总了C++中Constraints::empty方法的典型用法代码示例。如果您正苦于以下问题:C++ Constraints::empty方法的具体用法?C++ Constraints::empty怎么用?C++ Constraints::empty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Constraints
的用法示例。
在下文中一共展示了Constraints::empty方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: print
void print(Constraints constraints) {
int row = constraints.size() - 1;
while (!constraints.empty()) {
auto constraint = constraints.top();
constraints.pop();
std::cout << "Constraints[" << row-- << "]: ";
for (auto c : constraint) {
std::cout << c << " ";
}
std::cout << std::endl;
}
}
示例2: guess
void guess(Queens& queens, Constraints& constraints) {
auto row = queens.size();
for (int column = 0; column < SIZE; ++column) {
bool good = true;
if (!constraints.empty() && constraints.top().find(column) != constraints.top().cend()) {
good = false;
} else {
for (int other_row = 0; other_row < static_cast<int>(row); ++other_row) {
if (queens[other_row] == column) {
good = false;
break;
}
if ((queens[other_row] + other_row) == (column + static_cast<int>(row)) ||
(queens[other_row] - other_row) == (column - static_cast<int>(row))) {
good = false;
break;
}
}
}
if (good) {
queens.push_back(column);
if (queens.size() > constraints.size()) {
constraints.push(std::unordered_set<int>());
}
return;
}
}
if (constraints.size() > queens.size()) {
constraints.pop();
}
if (row == queens.size()) {
constraints.top().insert(queens.back());
queens.pop_back();
}
}