如何在C++中向终端打印矢量< int >

如何在C++中向终端打印矢量< int >,c++,vector,cout,C++,Vector,Cout,我试图使用cout将整数向量打印到终端,但在编译过程中收到错误消息: 与“operator不匹配如果您想按编码方式进行操作,您将需要以下类似的内容 template<class T> inline std::ostream& operator<< (std::ostream& o, std::vector<T> const& v) { for (auto const& i : v) o << i <

我试图使用cout将整数向量打印到终端,但在编译过程中收到错误消息:


与“operator不匹配如果您想按编码方式进行操作,您将需要以下类似的内容

template<class T>
inline std::ostream& operator<< (std::ostream& o, std::vector<T> const& v) {
  for (auto const& i : v)
    o << i << " ";
  return o;
}
例如,使用

该页面中的示例:

// ostream_iterator example
#include <iostream>     // std::cout
#include <iterator>     // std::ostream_iterator
#include <vector>       // std::vector
#include <algorithm>    // std::copy

int main () {
  std::vector<int> myvector;
  for (int i=1; i<10; ++i) myvector.push_back(i*10);

  std::ostream_iterator<int> out_it (std::cout,", ");
  std::copy ( myvector.begin(), myvector.end(), out_it );
  return 0;
}

这个错误意味着vector没有运算符,或者您可以编写自己的std::basic_ostream::operator for auto&value:disparityVector运算符。我可以使用这个方法在代码中进一步输出另一个矢量,但这是一种类型vector@eirikaso那么您可能有一个非模板版本,而不是下面答案中的模板。您可以使用分隔符
// ostream_iterator example
#include <iostream>     // std::cout
#include <iterator>     // std::ostream_iterator
#include <vector>       // std::vector
#include <algorithm>    // std::copy

int main () {
  std::vector<int> myvector;
  for (int i=1; i<10; ++i) myvector.push_back(i*10);

  std::ostream_iterator<int> out_it (std::cout,", ");
  std::copy ( myvector.begin(), myvector.end(), out_it );
  return 0;
}
for(int i = 0; i < disparityVector.size; i++) {
    cout << disparityVector[i];
}
cout << endl;
std::ostream& operator<<(std::ostream& os, const vector<int>& v)
{
    std::ostream_iterator<int> _oit(cout, " ");
    std::copy(v.begin(), v.end(), _oit);
    return os;
}