C++候选函数不可行
C++ candidate function not viable
我试图打印出一个空矢量,但收到以下错误:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/ostream:220:20: note: candidate function not viable: no known conversion from 'vector<int>' to 'basic_streambuf<std::basic_ostream<char>::char_type> *' (aka 'basic_streambuf<char> *') for 1st argument
basic_ostream& operator<<(basic_streambuf<char_type, traits_type>* __sb);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/ostream:223:20: note: candidate function not viable: no known conversion from 'vector<int>' to 'std::nullptr_t' for 1st argument
basic_ostream& operator<<(nullptr_t)
我也试过做std::cout << vec << std::endl;
,但它仍然不起作用。
这是我的代码:
#include <iostream>
#include <string>
#include <fstream>
#include <vector>
using namespace std;
int main() {
vector <int> vec(5);
cout << vec << endl;
return 0;
}
不要因为转换为std::nullptr_t
失败而挂断电话。这个错误基本上意味着你的向量类型没有重载输出流操作符。因此,您必须为向量实现自己的输出函数,类似于以下内容:
#include <iostream>
#include <string>
#include <vector>
template<typename type_t>
std::ostream& operator<<(std::ostream& os, const std::vector<type_t>& vector)
{
bool comma = false;
for (const auto& item : vector)
{
if (comma) std::cout << ", ";
std::cout << item;
comma = true;
}
std::cout << "n";
return os;
}
int main()
{
std::vector<int> vec{ 1,2,3,4,5 };
std::cout << vec;
return 0;
}
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- C++:考虑但不调用构造函数的特殊性
- 为什么我们要为avl树实现返回一个指向节点的指针,而不是void函数
- 使用 std::variant<...时调用 BaseState 函数而不是派生函数>
- 为什么返回 NULL 不会破坏函数?
- 程序不会执行函数 c++
- 不命名构造函数和析构函数上的类型错误
- 候选构造函数(隐式复制构造函数)不可行:第一个参数需要 l 值
- 候选函数不可行:没有从 std::vector<derived> 到 std::vector <base>的已知转换
- C++默认复制构造函数不可行
- C++ - 候选函数不可行:没有从"结构"到"结构(&)"的已知转换
- MPI_Op_create:候选功能不可行.自定义结构指针不能解释为空指针
- C++ 候选构造函数不可行:没有已知的转换
- 错误:候选函数不可行:'this'参数具有类型 'const' 但方法未标记为 const
- C++集合方法:函数'setCost'不可行:'this'参数的类型'const value_type'
- JUCE - 成员函数不可行:'this'参数具有常量类型
- 没有可调用的匹配函数(构造函数),候选函数不同于对给定类型的引用
- 错误:候选构造函数(隐式移动构造函数)不可行:没有已知的转换
- c++:初始化没有匹配的构造函数/候选构造函数不可行:需要单个参数,但没有提供参数
- 候选函数不可行:第一个参数('const Node *')将失去常量限定符