• QVector<QString> 显示器里面的动态数组元素QString和char *转变


    QVector类是一类提供了动态数组模板。

    QVector<T>是Qt普通容器类的一种。

    它将自己的每个对象存储在连续的内存中。能够使用索引號来高速訪问它们。QList<T>、QLinkedList<T>和 QVarLengthArray<T>也提供了相似的功能,它们用法例如以下:

    l QList一般用得最多,它能满足我们绝大部分需求。像prepend()和insert()这种操作通常比QVector要快些,这是因为QList存储它的对象的方式(Algorithmic Complexity)不同。

    还有它基于索引的API比QLinkedList的基于迭代器的API更方便使用。最后,运行程序时它的代码扩展量更少些。

    QLinkedList,当你须要使用一个真正的链表,要求在恒定的时间内将对象插入到列表的中间,你更想用迭代器而不是索引號来訪问对象。这个时候就使用QLinkedList吧!

    QVector。假设你想要在连续的内存上存储你的对象,你的对象比指针还要大,你想避免单独地把对象插入到堆的头部时,使用QVector

    QVarLengthArray,假设你想要一个低层次的可变大小的容器,QVarLengthArray就足够了,它的长处是速度快!

    以下是使用QVector存放整型值和QString的样例:

    QVector<int> integerVector;

    QVector<QString> stringVector;

    QVector保存对象的向量容器。一般是使用初始大小来创建向量容器。

    举例,以下的代码构造了一个拥有200个元素的QVector:

    QVector<QString> vector(200);

    假设所创建的向量容器对象没有赋初值,就会被使用这个向量容器的类的默认构造函数进行初始化。基本类型和指针类型都会被初始化为0,假设想使用其他的初值来初始化对象时,能够在初始化时再加入一个參数:

    QVector<QString> vector(200,"Pass");

    你也能够调用fill()函数在不论什么时候填充向量容器。

    可是当你要显示里面的详细字符串的时候

    在Qt开发中,QString通过toAscii().data()转换为char *类型

    QByteArray QString::toAscii () const

    Returns an 8-bit representation of the string as a QByteArray.

    If a codec has been set using QTextCodec::setCodecForCStrings(), it is used to convert Unicode to 8-bit char; otherwise this function does the same as toLatin1().

    Note that, despite the name, this function does not necessarily return an US-ASCII (ANSI X3.4-1986) string and its result may not be US-ASCII compatible.

    假设setCodecForCStrings编码字函数集。toAscii将Unicode转换为8位char种类。否则,toLatin1相同。

  • 相关阅读:
    求连续子数组的最大和
    【LeetCode练习题】Gas Station
    再来看看快速排序
    【LeetCode练习题】First Missing Positive
    【LeetCode练习题】Merge Sorted Array
    Hdu 2089-不要62 数位dp
    Tsinsen A1517. 动态树 树链剖分,线段树,子树操作
    Bzoj 3505: [Cqoi2014]数三角形 数论
    Poj 3695-Rectangles 矩形切割
    Tsinsen A1505. 树(张闻涛) 倍增LCA,可持久化线段树,DFS序
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5042951.html
Copyright © 2020-2023  润新知