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_cache的插入,遍历,查找,取出的接口
时间: 2024-02-25 10:53:41 浏览: 71
在模板类中定义如下接口来比较t_cache的插入、遍历、查找、取出:
```c++
template<typename T>
class MyTemplateClass {
public:
MyTemplateClass(T t) : m_t(t) {}
T value() const { return m_t; }
void insertToCache(QString key, QVector<T> values) {
t_cache.insert(key, values);
}
void traverseCache() const {
QCache<QString,QVector<T>>::const_iterator i;
for (i = t_cache.constBegin(); i != t_cache.constEnd(); ++i) {
qDebug() << i.key() << i.value();
}
}
QVector<T> findInCache(QString key) const {
if (t_cache.contains(key)) {
return t_cache.object(key);
} else {
return QVector<T>();
}
}
QVector<T> takeFromCache(QString key) {
return t_cache.take(key);
}
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;
};
```
阅读全文