返回不同类型C ++的匿名函数

时间:2019-02-25 23:22:46

标签: c++ function

我想创建一个将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;
}

0 个答案:

没有答案