我想创建一个将int和集合作为参数的匿名函数,然后修改集合(为void)或基于int返回false。有可能吗?
代码在这里。您会看到重复的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;
}