错误:调用'variable'没有匹配函数

Error: no matching function for call to 'variable'

本文关键字:函数 错误 variable 调用      更新时间:2023-10-16

我正在学习 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;
}

当你定义一个std::vector的对象时,将选择适当的构造函数来初始化该对象。编译器只是抱怨找不到合适的构造函数。请注意,构造函数也是一个函数。

这里的问题是内部vector的元素类型是char,但"5""3"等是c风格的字符串,即 const char[2] s,而不是char s。

将所有"更改为 '

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'}};