newEntryList = dir.entryList(QDir::NoDotAndDotDot | QDir::AllDirs | QDir::Files, QDir::DirsFirst); QSet <QString> newDirSet = QSet<QString>::fromList(newEntryList); QSet<QString> currentDirSet = QSet<QString >::fromList(currEntryList); // 添加了文件 QSet<QString> newFiles = newDirSet - currentDirSet; QStringList newFile = newFiles.toList(); // 文件已被移除 QSet<QString> deletedFiles = currentDirSet
= 1000; struct scull_qset { void **data; struct scull_qset *next; }; struct scull_dev { struct scull_qset the first qset explicitly if need be. */ if (! *dptr; /* the first listitem */ int quantum = dev->quantum, qset = dev->qset; int itemsize = quantum *dptr; int quantum = dev->quantum, qset = dev->qset; int itemsize = quantum * qset; int item, s_pos *next, *dptr; int qset = dev->qset; /* "dev" is not-null */ int i; for (dptr = dev->data; dptr;
以下是关于 QSet 的概述: 1.3.1 特点和用途 无序性: QSet 中的元素是无序的,没有特定的排列顺序。 唯一值: 每个值在 QSet 中是唯一的,不允许重复值。 isEmpty() const 判断 QSet 是否为空。 size() const 返回 QSet 中元素的数量。 clear() 清空 QSet 中的所有元素。 unite(const QSet &other) 合并两个 QSet,将 other 中的元素合并到当前 QSet。 intersect(const QSet &other) 保留两个 QSet 中共有的元素,删除其他元素。 subtract(const QSet &other) 从当前 QSet 中移除与 other 共有的元素。 begin() 返回指向 QSet 开始位置的迭代器。
= 1000; struct scull_qset { void **data; struct scull_qset *next; }; struct scull_dev { struct the first qset explicitly if need be. */ if (! *dptr; /* the first listitem */ int quantum = dev->quantum, qset = dev->qset; int itemsize = quantum *dptr; int quantum = dev->quantum, qset = dev->qset; int itemsize = quantum * qset; int item, s_pos *next, *dptr; int qset = dev->qset; /* "dev" is not-null */ int i; for (dptr = dev->data; dptr
Python 实现代码: class yieldmrkf_t: def __init__(self, A, B, Pi, OSet, QSet): self.A = A # 转移概率矩阵 隐状态数量 self.M = len(B) / self.N # 观察状态数量 self.OsetVal = OSet self.QSetVal = QSet self.QSet = [] self.Oset = [] for i in range(0, self.N): self.QSet.append OStateSet) # 初始化t= 1 的情况 delta_set = [] fai_set = [] for i in self.QSet [0.5, 0.2, 0.3, 0.4, 0.1, 0.5, 0.7, 0.1, 0.2] Pi = [0.2, 0.4, 0.4] o = yieldmrkf_t(A, B, Pi, OSet, QSet
scull_qset: struct scull_qset { void **data; struct scull_qset *next; }; 下面代码片段展示了实际中 struct scull_dev /* dev->data指向第一个量子集scull_qset,所以这个for循环每次循环处理一个scull_qset。 *dptr; int quantum = dev->quantum, qset = dev->qset; int itemsize = quantum * qset; int 如果scull_qset不存在,还要分配内存空间,创建指定的scull_qset。*/ if (dptr == NULL || !dptr->data || ! *dptr; int quantum = dev->quantum, qset = dev->qset; int itemsize = quantum * qset; int item, s_pos
registerEvent(const QString &type, const QJSValue &handler, QTimer* timer, const QSet <QString> &list_agents, const QSet<QString> &list_os, const QSet<QString> &list_listeners, const QString &id); // 菜单系统集成 void registerMenu(const QString &type, AbstractAxMenuItem* menu, const QSet<QString> &list_agents, const QSet<QString> &list_os, const QSet<QString> &list_listeners);};终端模拟器实现// QTermWidget.h
newEntryList = dir.entryList(QDir::NoDotAndDotDot | QDir::AllDirs | QDir::Files, QDir::DirsFirst); QSet <QString> newDirSet = QSet<QString>::fromList(newEntryList); QSet<QString> currentDirSet = QSet<QString >::fromList(currEntryList); // 添加了文件 QSet<QString> newFiles = newDirSet - currentDirSet; QStringList newFile = newFiles.toList(); // 文件已被移除 QSet<QString> deletedFiles = currentDirSet - newDirSet;
r.RelatingPropertyDefinition.PropertySetDefinitions) //数量集合 .OfType<IIfcElementQuantity>() //从数量集获取所有数量 .SelectMany(qset => qset.Quantities) //我们只对面积感兴趣 .OfType<IIfcQuantityArea>() //我们将采取第一个。 r.RelatingPropertyDefinition.PropertySetDefinitions) .OfType<IIfcElementQuantity>() .SelectMany(qset => qset.Quantities) .OfType<IIfcQuantityVolume>() .FirstOrDefault()?.
QSet::const_iterator QSet::iterator QMap<Key,T>,QMultiMap<Key,T> QMap::const_iterator QMap::iterator void clear() QSet::iterator erase(QSet::const_iterator pos) QSet::iterator erase(QSet::iterator pos QSet<T> &unite(const QSet<T> &other) //差集:从该集合中删除包含在ohter集合中的所有项。 返回对该集合的引用。 QSet<T> &QSet::subtract(const QSet<T> &other) //交集:从该集合中删除ohter集合中不包含的所有项。 返回对该集合的引用。 QSet<T> &intersect(const QSet<T> &other) //如果该集合与ohter集合至少有一个共同项,则返回true。
) << std::endl; } return a.exec(); } 关联容器 关联容器: qmap,qmultimap,qhash,qmultihash,qmultihash,qset data() << std::endl; } return a.exec(); } qhash使用上与qmap相同,但qhash效率更高,唯一的不同时qhash不排序,qmap自动排序. qset : qset 集合容器,是基于散列表的集合模板,存储顺序不定,查找速度最快,内部使用qhash实现。 #include <QCoreApplication> #include <iostream> #include <QString> #include <QSet> struct MyStruct { QString uname; }; int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QSet
QtPrivate::QStringList_removeDuplicates(QStringList *that) { int n = that->size(); int j = 0; QSet
容器类型:如QList、QVector、QMap、QSet等。 其他类型:如QVariant、QByteArray、QDate、QTime、QDateTime、QUrl等。
std::vector<qreal> std::vector<bool> 通过使用Q_DECLARE_METATYPE宏还可以自定义的QList, QVector, QQueue, QStack, QSet
().data() << std::endl; } return a.exec();}qhash使用上与qmap相同,但qhash效率更高,唯一的不同时qhash不排序,qmap自动排序.qset : qset 集合容器,是基于散列表的集合模板,存储顺序不定,查找速度最快,内部使用qhash实现。 #include <QCoreApplication>#include <iostream>#include <QString>#include <QSet>struct MyStruct{ qint32 uid; QString uname;};int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); QSet
= NULL) return; } else { //我们来看这里,写屏障会调用这个方法 if (qset()->process_or_enqueue_complete_buffer (_buf)) { _sz = qset()->buffer_size(); _index = _sz; return; } } } //初始化queue申请_buf,修改_index _buf = qset()->allocate_buffer(); _sz = qset()->buffer_size(); _index
i < scull_nr_devs && len <= limit; i++) { struct scull_dev *d = &scull_devices[i]; struct scull_qset %i, q %i, sz %li\n", i, d->qset, d->quantum, d->size); for (; qs && len <= limit; qs = qs->next) { /* scan the list */ len += sprintf(buf + len, " item at %p, qset at %p\n", qs, qs->data); if ( %i, q %i, sz %li\n", (int)(dev - scull_devices), dev->qset, dev->quantum, dev->size); for (d = dev ->data; d; d = d->next) { /* scan the list */ seq_printf(s, " item at %p, qset at %p\n", d, d->data
重载版本使用自定义的比较操作 三、Qt容器类 Qt容器类的分类: 1.连续容器:QVector、QLinkedList、QList、QStack(继承QVector)、 QQueue(继承QList) 2.关联容器:QSet 关联容器 QSet<T> 它提供一个键值对集合,可以快速的进行查找, QMap<Key, T> QMultiMap<Key, T> QMap是一个以升序键顺序存储键值对的数据结构,QMultiMap是QMap T> QMutableLinkedListIterator<T> QVector<T>, QStack<T> QVectorIterator<T> QMutableVectorIterator<T> QSet <T> QSet<T>::const_iterator QSet<T>::iterator QMap<Key, T>, QMultiMap<Key, T> QMap<Key, T>::const_iterator O(1) O(n) QSet<Key> Amort. O(1) O(n) Amort. O(1) O(n) 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。
MIB_IF_ROW2 *ifRow; PMIB_IF_TABLE2 ifTable; if (GetIfTable2(&ifTable) == NO_ERROR) { QSet
widget=widgets.TextInput()) def index(request): nid = request.GET.get("id") # 通过ID获取到记录 qset = models.DBHost.objects.filter(id=nid).values("host","title") dic = qset[0] # 转为字典 form =