我在下面写这个简单的程序来使用向量,但这里有错误,任何人都可以帮忙吗?
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
void main()
{
vector<int>a(10,1);
cout<<a<<endl;
}
答案 0 :(得分:0)
没有运算符&lt;&lt;(ostream&amp;,vector const&amp;)。你可以自己提供一个:
ostream& operator<<(ostream& os, vector<int> const& v) {
for (int i=0; i<v.size(); ++i) {
os << v[i] << ", ";
}
return os;
}
将此代码放在main函数之前,它应该可以正常工作。
答案 1 :(得分:0)
试试这个:
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;
}
(但请确保&lt;&lt;&lt;运算符为T超载)
如果您不想重载&lt;&lt;操作者:
for (auto& item : a) {
std::cout << item << " ";
}