C 通过使用复制显示对向量
C++ display a vector of pairs by using copy
std::vector<std::pair<Pos, int>> v;
// sort and other stuff...
std::ostream_iterator<std::vector<std::pair<Pos, int>>> out_it(std::cout, "n");
std::copy(v.begin(), v.end(), out_it); // error
目前正在研究STL并尝试使用copy
打印到控制台。我有一个用于显示对的operator<<
,我应该做一个以显示向量吗?还是还有另一种方式?Pos
只是我定义的类,它具有一个私有成员字符串。
这将有效:
#include <iostream>
#include <vector>
#include <iterator>
namespace std {
template <class T1, class T2>
std::ostream& operator<<(std::ostream& out, const std::pair< T1, T2>& rhs)
{
out << "first: " << rhs.first << " second: " << rhs.second;
return out;
}
}
int main(){
std::pair< size_t, int > pp(1,2);
std::vector<std::pair< size_t, int >> v;
v.push_back(pp);
v.push_back(pp);
v.push_back(pp);
std::ostream_iterator<std::pair< size_t, int >> out_it(std::cout, "n");
std::copy(v.begin(), v.end(), out_it);
}
std :: copy()从第一个参数给出的值迭代到第二个,使用第三参数作为目标的迭代器。类型应该匹配,显然。
如果您为向量流定义迭代器,则不需要std ::复制即可输出单个向量(这应该是操作员的代码&lt;&lt;?)
相关文章:
- 代码使用向量成功运行,但使用数组显示错误
- 将信息输入到下面显示的结构向量中的正确语法/格式是什么
- 使用指针时,C 显示向量
- 使用 C++ 中的向量在新行上显示文本文件中的列
- 根据标准对结构向量进行排序,然后显示结果
- 堆栈在函数中弹出仍然显示在主函数中。调用不应该通过引用给定的向量吗
- 在列中显示Deques的向量
- fn 指针的向量没有显示正确的大小()
- Valgrind 显示无效的读/写错误,但我不使用 new 或 calloc,只使用向量和固定数组
- 如何以某种格式为用户显示对象向量
- 如何将结构指针插入stl向量中并显示内容
- 删除列表向量中的元素并显示当前列表
- C 通过使用复制显示对向量
- 初始化和显示整数向量时出现意外结果
- 你如何制作一个显示 24、60 和 1 的向量
- 循环并通过图像向量显示
- 显示向量 (C++) 时出现运行时错误
- 显示向量的内容,其中显示for循环一值
- 在使用向量和排序输入值期间不显示输出
- 在c++中显示向量矩阵的所有值