错误:调用'variable'没有匹配函数
Error: no matching function for call to 'variable'
我正在学习 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'}};
相关文章:
- "error: no matching function for call to"构造函数错误
- 为什么类中的ostringstream类型的成员会导致";调用隐含删除复制构造函数";错误
- 尝试将unique_ptrs推送到向量时使用纯虚拟函数错误
- C++ OpenCV 卡尔曼滤波器构造函数错误
- C++:用户定义的显式类型转换函数错误
- C++ 合并字符串以'system'函数错误
- C++ wmain 函数错误时使用 Unicode
- 结构数组的构造函数错误,错误消息:没有构造函数实例与参数列表匹配
- C++ 中常量属性的初始化构造函数错误
- 线程 std::调用未知类型,无法专门化函数错误
- 表单显示对话框函数错误,并且不执行下面的语句
- 函数错误 C2059:语法错误:'>'不起作用
- STL向量上出现奇怪的复制构造函数错误
- C++ Visual Studio 重载函数错误:没有重载函数的实例与指定的类型匹配
- C++引用已删除函数错误
- 为什么通过带有文字编号的引用调用会出现"无匹配函数"错误?
- C++ 乘法定义的构造函数错误消息似乎错误
- 在 c++ 代码中将数组传递给函数错误
- FFMPEG avcodec_decode_video2函数错误代码
- 为什么我会收到转换函数错误