QT中的QList和QMap的一些简单介绍

QT中提供了多个序列容器和关联容器,但在实际开发项目中使用较多的则是QList和QMap,接下来就来简单的对这2个类进行一些熟悉,为以后的学习使用打下基础。
QList是一个数组列表,它的优势在于可以快速在头部和尾部以及其他任意地方就进行数据的写入删除等操作。

QLIST

//list的一些基本函数使用
QList<QStering>list;

list.append("last");//尾部写入数据

list.prepend("head");//头部写入数据

list.insert(2,"two");//在下标为2的地方写入数据two

list.move(1,3);//将下标为1的值移动至下标为3的地方

list.swap(1,3);//将下标为1的值和下标为3的值进行交换

list.contains("mm");//list中是否包含‘mm’这个值,包含返回true,不包含返回false

list.count("mm");//list中值为mm的个数

list.indexOf("mm");//从0开始往前查找值mm,找到返回下标值,默认不写为从0开始

list.indexOf("mm",1);//从1开始往前查找值mm,找到返回下标值


在对list进行遍历输出的时候,可以使用[下标值]的方式,也可以使用at()函数,at()函数的执行效率要比[下标值]的方式要快许多。

QMap

QMap是关联性容器,采取的是键值对的存储形式,一个键对一个值,或者一个键对多个值。

//QMap
QMap<QString,int>map;

map["one"] = 1;//在map中插入一个one键,对应的值为1

map.insert("three",3);//使用insert进行键值对的数据插入

int value6 = map["six"];//使用[]操作符时,如果map里边没有相应的键,那么系统会自动键键插入进行map中
qDebug() << "value6" << value6;
qDebug() << "contains:six?" << map.comntains("six");

int value7 = map.value("seven");//使用value()函数,如果键不存在map中,系统会返回一个0,但是不会自动将键添加进map
qDebug() << "value7:" << value7;
qDebug() << "contains seven?" << map.contains("seven");

int value9 = map("nine",9);//当键不存在map中时,默认会自动返回0,但是也可以自行设置返回的数值

int value10 = map.insert("ten",1);
int value10 = map.insert("ten",2);
qDebug() << "ten:" << map.value("ten");//map默认情况下是一键对一值,如果重新给键赋值,那么后赋值的值会将先赋值的值覆盖掉

//map中如果想一键对多值,可以使用insertMulti()
map.insertMulti("two",2);
map.insertMulti("two",3);
QList<int>value2 = map.value("two");
qDebug() << "two:" << value2;

//虽然可以使用insertMulti()函数设置一键多值,但一般情况下建议使用QMultiMap类来进行设置
QMultiMap<QString,int>map1,map2,map3;
map1.insert("one",1);
map.insert("one",2);
map2.insert("one",3);
map3 = map1 + map2;//这里的是字符串的追加,不是数据值的相加
QList<int>qmap3;
qDebug() << "qmap3:";
for(int i = 0; i<qmap3.size(); i++)
{
  	qDebug() << qmap3.at(i);
}
说的不好,望大家多多指点,我也多多学习。
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值