类类型向量的打印内容
Printing content of class type vector
显式模板专用化不起作用,模板本身工作正常。
模板的专用化将类 Date 的向量作为参数传递,我不知道如何打印向量的各个值
template <typename T>
void printVector(const std::vector<T> &vec) {
for (auto i = vec.begin(); i != vec.end(); ++i)
std::cout << *i<< ' ';
}
template <>
void printVector(const std::vector<Date> &vec) {
for (auto i = vec.begin(); i != vec.end(); ++i)
std::cout << *i << ' ';
}
我收到 2 个错误:二进制"<<":未找到采用类型为"const Date"的右操作数的运算符(或者没有可接受的转换(和:没有运算符"<<"匹配操作数
错误很明显:您需要为Date
类提供operator<<
重载。
std::ostream& operator<<(std::ostream& os, const Date& date) { /* ... */ }
或者,您可以在需要vector<Date>
的printVector
重载中手动打印出Date
字段 - 但是,这是一个不太灵活的解决方案,因为它将打印vector
的逻辑与打印Date
的逻辑耦合在一起。
相关文章:
- 在C++中打印指向不同基元数据类型的指针的内存地址
- 从模板创建通用打印函数,以打印基元数据类型变量的值
- 使用即将推出的C++反射工具打印类型的全名
- 为自定义打印调试实现传递任何类型的变量
- 将char类型指定给int以打印相应的ASCII字符
- C/C++ - 用于按顺序打印数字的 sem_t 类型的单个信号量
- 打印/修改类对象的特定成员变量,其类定义列表 (STL) 包含的元素类型
- 键入特征样式以测试 T 是basic_string<>还是可打印的类似字符串的类型?
- 如何打印出十进制(tagDEC)类型的值?
- 如何在实例化类类型的变量时打印其名称
- 类类型向量的打印内容
- 如何使用谷歌测试打印标准::时间类型
- UINTX_T和INTX_T类型的打印保证
- 如何使用 std::copy 打印用户定义的类型
- GDB有没有办法在不省略模板参数的情况下打印类型
- 如何打印类型向量<元组<字符串、int、int>> 以筛选 c++?
- c++中基类指针引用的对象的打印类型
- 打印类型包括装饰,模板元编程,constexpr,使用什么
- 模板元编程:打印类型列表
- 漂亮打印类型和类模板及其所有模板参数