Qt总结之十:QList、QVector和QMap

一、QList

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

 

QVector用法基本和QList用法相同

区别:一个是随机存取,一个是连续存取,所以list插入删除很快,vector查询很快。
但是vector有个地方一定要注意:
vector:如果你添加元素,但是vector的容量(是容量,不是大小,容量比大小大,会预先多分配空间)不够的话,系统就会重新分配一段内存,然后把原先的内容全部拷贝过去,然后删除原先的内容。所以,如果你设定了一个纸箱vector的指针,或者说迭代器,在你添加元素之后,这个指针(迭代器)需要重新计算

三、QMap

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;
}

 

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值