错误 C2679。错误 1 错误 C2679:二进制'<<':找不到采用类型 'std::vector<_Ty>' 的右侧操作数的运算符
error c2679.Error 1 error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::vector<_Ty>'
我在下面写了一个简单的程序来使用向量,但这里有一个错误,有人能帮忙吗?
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
void main()
{
vector<int>a(10,1);
cout<<a<<endl;
}
没有运算符<lt;(ostream&,vector const&)。您可以自己提供一个:
ostream& operator<<(ostream& os, vector<int> const& v) {
for (int i=0; i<v.size(); ++i) {
os << v[i] << ", ";
}
return os;
}
把这段代码放在主函数之前,它应该可以工作了。
试试这个:
std::ostream& operator<<(std::ostream& stream, std::vector<int> const& vec) {
for (auto it = vec.begin(); it != vec.end(); it++) {
stream << *it << " ";
}
return stream;
}
或者:
template <typename T>
std::ostream& operator<<(std::ostream& stream, std::vector<T> const& vec) {
for (auto it = vec.begin(); it != vec.end(); it++) {
stream << *it << " ";
}
return stream;
}
(但请确保<<运算符对于T是重载的)
如果你不想让<lt;操作员:
for (auto& item : a) {
std::cout << item << " ";
}
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 错误:调用"std::vector<:vector<int>>::p ush_back(std::vector<std::__cxx11::basic_string<
- 错误,包括&lt; ctype&gt;在原子上使用C 11
- &lt;&lt;操作员在C 中超载错误
- opencv 2.4.7在iOS错误背景_segm.hpp #include&lt; list&gt;未找到
- '&lt;'''&lt;'''&quot的模板类错误''令牌”
- 在尝试超载&lt;&lt;时链接错误2005和1169操作员
- 错误:没有匹配'运算符<<"在'std::cout
- 过载<<比如cout错误
- 重载& lt; & lt;为什么我得到以下错误
- 重载ostream&时转换错误无效;operator< & lt;
- 重载<<运算符错误C2804:二进制'运算符<<'参数太多
- 编译器错误,包括'<'代币
- 重载& lt; & lt;错误