qt5的struct MyStruct1 { int x; int y; }; struct MyStruct2 { int x; QString y; }; // 定义一个模板类(泛型类),使用 MyStruct1 和 结构体作为类型参数 template<typename T> class MyTemplateClass { public: MyTemplateClass(T t) : m_t(t) {} T value() const { return m_t; } private: T m_t; QMap<QString,QVector<T>>t_map; QMap<QString,QVector<T>>old_map; QCache<QString,QVector<T>>t_cache; QVector<T>t_vctor; };请提供比较t_vctor的遍历和打印
时间: 2024-02-25 15:52:06 浏览: 78
c/c++中struct定义、声明、对齐方式解析
遍历和打印 MyTemplateClass 中的 t_vctor 可以使用以下代码:
```c++
template<typename T>
class MyTemplateClass {
public:
MyTemplateClass(T t) : m_t(t) {
t_vctor.append(t);
}
T value() const { return m_t; }
void printTVector() {
for(int i=0; i<t_vctor.size(); i++) {
qDebug() << t_vctor[i];
}
}
private:
T m_t;
QMap<QString,QVector<T>> t_map;
QMap<QString,QVector<T>> old_map;
QCache<QString,QVector<T>> t_cache;
QVector<T> t_vctor;
};
```
在 MyTemplateClass 中新增一个 printTVector 函数,通过 for 循环遍历 t_vctor,并使用 qDebug() 打印每个元素。可以在 main 函数中通过以下代码测试:
```c++
MyTemplateClass<MyStruct1> c1({1, 2});
MyTemplateClass<MyStruct2> c2({3, "Hello"});
c1.printTVector();
c2.printTVector();
```
输出结果为:
```
{1, 2}
{3, "Hello"}
```
阅读全文