2020-08-19 Qt中的数据结构

本文深入探讨了Qt中的各种数据类型,如qint8、qint16、qint32等,以及QString的使用技巧,包括字符串操作、转换和输出。同时,详细介绍了Qt的容器类,如QList、QMap的使用方法,以及如何进行排序和查找操作。

2020-08-19 Qt中的数据结构

Qt常用的数据类型:
qint8 quint8
qint16 quint16
qint32 quint32
qint64 quint64
qreal (表示是float)

例如:求取绝对值

    QCoreApplication a(argc, argv);
    qreal value=-4.333;
    qDebug()<<qAbs(value);
    QString str("小明");//QString存储Unicode字符
    QString str1="小张";
    str1.append("垂钓");//添加
    str1.prepend("今天,");
    str1.replace(4,3,"换");//替换掉3个字
    qDebug()<<str<<str1;
    //boost库作为STL外的扩展库

拓展:boost库作为STL外的扩展库,可以去尝试使用一下
boost与QT之间的可以走进程间通信,通过STL接口

2.QString输出

QString name="老王";
int age=20;
QString information=QString("name is %1,age is %2").arg(name).arg(age);
qDebug()<<information;

在这里插入图片描述
3.QString与std::string的转换

    //QString与std::string的转换
    std::string stdstr=information.toStdString();//转成std::string
    std::cout<<stdstr<<"\n";
    qDebug()<<QString::fromStdString(stdstr);//转成QString
    printf(stdstr.c_str());//转换成const char*,C语言接口

在这里插入图片描述
4.QByteArray

//QByteArray
//QByteArray can be used to store both raw bytes (including '\0's) and traditional 8-bit '\0'-terminated strings.
//QByteArray可用于存储原始字节(包括'\ 0')和传统的8位'\ 0'终止的字符串。
//与char类似
QByteArray ba("test\0");
qDebug()<<ba;

拓展:#include <QRegExp>//QT的正则表达式

5.Qt中的容器
帮助文档中搜索Container Classes
在这里插入图片描述
6.list与iterator的使用

//Qt的容器
//搜索container class获取更多信息
QList<QString> list;//模板类容器
list<<"A"<<"B"<<"C"<<"D";
list.append("E");
QString string1=list.at(0);
QList<QString>::iterator i;//使用读写迭代器
for(i=list.begin();i!=list.end();i++)
{
    *i=(*i).toLower();//将大写转化为小写
    qDebug()<<(*i);
}
    //也可以使用C语言的写法
    for (int i=0;i<list.size();i++) {
        qDebug()<<list.at(i);
    }

在这里插入图片描述
7.QMap的使用
需要头文件#include <QMap>

//Map的使用
QMap<int,QString> member;
member.insert(1,"小明");
member.insert(2,"小王");
member.insert(3,"小张");

QMap<int,QString>::iterator itor;
for (itor=member.begin();itor!=member.end();itor++) {
    qDebug()<<itor.key()<<":"<<itor.value();
}

8.sort的使用,排序

QList<int> list2;
list2<<1<<5<<3<<4<<2;
std::sort(list2.begin(), list2.end()) ;
QList<int>::iterator i2;
for (i2=list2.begin();i2!=list2.end();i2++) {
    qDebug()<<(*i2);
}

9.find键,修改值

itor=member.find(2);
itor.value()="老王";
for (itor=member.begin();itor!=member.end();itor++) {
    qDebug()<<itor.key()<<":"<<itor.value();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值