Анонимная функция, которая возвращает различные типы C ++ - PullRequest
0 голосов
/ 26 февраля 2019

Я хочу создать анонимную функцию, которая принимает 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...