Я хочу создать анонимную функцию, которая принимает int и набор в качестве параметров, и либо изменяет набор (быть недействительным), либо возвращает false на основе int.Возможно ли это сделать?
Код здесь.Вы можете увидеть повторяющиеся заявления if, которые меня беспокоят.
bool sudoku2(std::vector<std::vector<char>> grid) {
std::set<char> row, col, block;
for (std::size_t i = 0; i < grid.size(); i++) {
for (std::size_t j = 0; j < grid[i].size(); j++) {
if (grid[i][j] != '.') {
if (row.find(grid[i][j]) == row.end()) {
row.insert(grid[i][j]);
} else {
return false;
}
}
if (grid[j][i] != '.') {
if (col.find(grid[j][i]) == col.end()) {
col.insert(grid[j][i]);
} else {
return false;
}
}
if (grid[i/3*3 + j/3][i%3*3 + j%3] != '.') {
if (block.find(grid[i/3*3 + j/3][i%3*3 + j%3]) == block.end()) {
block.insert(grid[i/3*3 + j/3][i%3*3 + j%3]);
} else {
return false;
}
}
}
row.clear();
col.clear();
block.clear();
}
return true;
}