QList、QVector、QMap容器类

    xiaoxiao2021-12-15  24

    QList<QString> list;创建一个列表对象,存储一列QString类型的值 list<<str<<str1<<str2通过操作符 "<<" 将字符串存储在该列表中 函数QList::append(const T&value)在列表末尾插入值 QList<QString> list; list.append("one"); list.append("two"); list.append("three"); // list: ["one", "two", "three"] 函数QList::append(const QList<T>&value)在列表末尾插入一个列表 函数QList::at(int i)返回列表中第i+1个元素,list.at(0)为第一个元素 函数QList::back()返回列表中的最后一个元素 函数QList::push_back(const T &value)把指定元素插入到列表末尾 函数QList::pop_back()把最后一个元素从列表中删除 函数QList::begin()返回STL样式迭代器指向列表中的第一个元素(简单来说就是第一个元素的指针) 函数QList::end()返回列表中的最后一个元素的后一个元素指针(iterator类型指针) 函数QList::rbegin()返回列表中的最后一个元素指针 函数QList::clear()移除列表所有元素 函数QList::contains(const T &value)判断列表中是否包含指定元素 函数QList::count()返回列表中元素的个数 函数QList::count(const T &value)返回列表中指定元素的个数 函数QList::empty()如果列表元素为空则返回true 函数QList::endsWith(const T &value)判断指定元素是否是最后一个元素 函数QList::erase(iterator pos)移除指定元素 函数QList::mid(int pos, int length = -1)返回一个子list列表,如果length = -1则子list包含父list从索引位置到末尾的所有元素,否则子list包含父list从索引位置数起,lenght个元素 QVector用法基本和QList用法相同 区别:一个是随机存取,一个是连续存取,所以list插入删除很快,vector查询很快。 但是vector有个地方一定要注意: vector:如果你添加元素,但是vector的容量(是容量,不是大小,容量比大小大,会预先多分配空间)不够的话,系统就会重新分配一段内存,然后把原先的内容全部拷贝过去,然后删除原先的内容。所以,如果你设定了一个纸箱vector的指针,或者说迭代器,在你添加元素之后,这个指针(迭代器)需要重新计算 QMap<Key &key, const T &value> 示例: QMap<QString, int> map; map["one"] = 1;//使用重载符[]往map列表插入一个元素 key = "one",value = 1; map.insert("twelve", 12);//往map列表插入一个元素 //创建一个关联map的迭代器,遍历map列表元素 QMapIterator<QString,int> i(map); while (i.hasNext()) { i.next(); qDebug<< i.key() << ": " << i.value() << endl; }  

    转载请注明原文地址: https://ju.6miu.com/read-1000252.html

    最新回复(0)