Ошибка: нет подходящей функции для вызова переменной - PullRequest
0 голосов
/ 07 января 2019

Я изучаю c ++, и я инициализировал переменную (вектор вектора символов), а затем добавил прототип функции, а затем вызвал эту функцию в main.

Но я вижу error: no matching function for call to 'std::vector<std::vector<char> >::vector(<brace-enclosed initializer list>)'

Я думаю, что сообщение об ошибке гласит:

"Эй, вы пытались вызвать функцию 'std::vector<std::vector<char> >::vector(<brace-enclosed initializer list>)', но она не существует."

Но, насколько я могу судить, я никогда не пытался вызывать его как функцию, я просто пытался инициализировать его как переменную.

#include <iostream>
#include <vector>

int main()
{
    std::vector<std::vector<char>> board {{"5","3",".",".","7",".",".",".","."},{"6",".",".","1","9","5",".",".","."},{".","9","8",".",".",".",".","6","."},{"8",".",".",".","6",".",".",".","3"},{"4",".",".","8",".","3",".",".","1"},{"7",".",".",".","2",".",".",".","6"},{".","6",".",".",".",".","2","8","."},{".",".",".","4","1","9",".",".","5"},{".",".",".",".","8",".",".","7","9"}};
    return 0;
}

1 Ответ

0 голосов
/ 07 января 2019

Когда вы определяете объект std::vector, для инициализации объекта будет выбран соответствующий конструктор. Компилятор просто жалуется, что соответствующий конструктор не может быть найден. Обратите внимание, что конструктор также является функцией.

Проблема здесь в том, что тип внутреннего элемента vector равен char, но "5" и "3" и т. Д. Являются строками в стиле c, то есть const char[2] с, а не char с .

Изменить все " на '.

std::vector<std::vector<char>> board {{'5','3','.','.','7','.','.','.','.'},{'6','.','.','1','9','5','.','.','.'},{'.','9','8','.','.','.','.','6','.'},{'8','.','.','.','6','.','.','.','3'},{'4','.','.','8','.','3','.','.','1'},{'7','.','.','.','2','.','.','.','6'},{'.','6','.','.','.','.','2','8','.'},{'.','.','.','4','1','9','.','.','5'},{'.','.','.','.','8','.','.','7','9'}};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...