如何在<int> c++ 中将矢量打印到终端
How to print vector<int> to terminal in c++
我正在尝试使用"cout"将整数向量打印到终端,但在编译过程中收到错误消息:
与"运算符<<"不匹配(操作数类型为"std::basic_ostream"和"std::vector"( cout <<"点上的视差:"<<视差向量<<endl;
代码片段如下所示:
vector<int> disparityVector;
for ( int i=0; i<drawPixels.size(); i++) // Get disparity at each point of the drawn line
disparityVector.push_back((int)disparityMapOutput.at<int16_t>(pos[i].y, pos[i].x));
cout << "Disparity at points: " << disparityVector << endl;
将值分配给向量没有错误,只有代码的"cout"部分出错
例如,使用ostream_iterator
.
该页面的示例:
// 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;
}
如果你想按照你编码的方式去做,你需要下面这样的东西。
template<class T>
inline std::ostream& operator<< (std::ostream& o, std::vector<T> const& v) {
for (auto const& i : v)
o << i << " ";
return o;
}
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;
}
此错误意味着vector<T>
没有operator<<
实现。 您需要遍历矢量并打印每个元素:
for(int i = 0; i < disparityVector.size; i++) {
cout << disparityVector[i];
}
cout << endl;
相关文章:
- 终端无法在 c++ 中打印矢量
- "Make run"在终端中打印"bin/prog"
- C++ 在带有回车符的终端中重新打印文本
- 如何在<int> c++ 中将矢量打印到终端
- iostream在第二源类(C )中不打印到终端
- 从终端 C++ 中的字符串中打印出 unicode 字符
- 添加 g++ 的 -std= 标志时,C++打印到终端的速度要慢得多?
- 如何使用 g++ 将≠打印到终端
- 将终端上的所有消息和警告打印到文件中
- 如何避免打印cout语句的终端空间
- 如何使用Boost::P ython打印到Python终端
- C ++如何创建一个函数,该函数在终端和文件上打印
- 河内塔算法无需打印任何内容到终端窗口
- 如果命令不只是打印结果,而是进入某种交互模式,如何处理来自C++的终端命令执行的输出?
- 打印到终端而不滚动
- 在终端服务器中打印原始数据
- 打印到一个进度条到终端从Java/ c++
- c++流和打印到终端
- 将UTF-32字符打印到终端
- 找到终端上打印的内容