zoukankan      html  css  js  c++  java
  • QByteArray详解

    1、概述

    2、初始化

    2.1 QByteArray()

    QByteArray array1;
    array1.resize(4);
    array1[0] = 1;
    array1[1] = 2;
    array1[2] = 'm';
    array1[3] = 'k';
    qDebug() << array1;  //结果: "x01x02mk"

    2.2 QByteArray(const char *data, int size = -1)

      size指定数据长度,默认为-1,那么QByteArray在构造的时候遇到第一个 '' 空字符时停止。所以如果你要赋值的数据中确实有 '' 的话,需要指定size。

    QByteArray array2("helloworld");
    qDebug() << array2;  //结果: "hello"
    
    QByteArray array2("helloworld", 11);
    qDebug() << array2;  //结果: "hellox00world"
    
    QByteArray array3;
    array3 = "hello world";
    qDebug() << array3;    //结果: "hello world"

    2.3 QByteArray(int size, char ch)

    QByteArray array4(5, 'Q');
    qDebug() << array4;    //结果: "QQQQQ"

     3、访问

      QByteArray的访问方式有四种:[]、data[]和at()、constData[]。其中[]和data[]为可读可写;at()和constData[]为只读,因此访问用这两种速度较快。

    4、成员函数

    4.1 char *QByteArray::data()

      返回指向字节数组中存储的数据的指针。

    QByteArray array2("hello world");
    char *data = array2.data();
    qDebug() << array2.data()[0] << array2.data()[1] << array2.data(); //结果:h e hello world
    qDebug() << data[0] << data[1] << data;  //结果:h e hello world

     4.2 QByteArray &QByteArray::fill(char ch, int size = -1)

      将字节数组的每个字节用ch填充,如果size不是默认值-1,则先将字节数组调整为指定size大小,再填充。

    QByteArray array2("hello world");
    qDebug() << array2;  //结果:"hello world"
    array2.fill('m');
    qDebug() << array2;  //结果:"mmmmmmmmmmm"
    array2.fill('m', 5);
    qDebug() << array2;  //结果:"mmmmm"

     4.3 int QByteArray::indexOf(const QByteArray &ba, int from = 0) const

      搜索并返回字节数组中第一次出现指定字节数组ba的索引位置,位置从索引from开始向后搜索。

    QByteArray x("sticky question");
    QByteArray y("sti");
    x.indexOf(y);               // returns 0
    x.indexOf(y, 1);            // returns 10
    x.indexOf(y, 10);           // returns 10
    x.indexOf(y, 11);           // 搜不到 returns -1

    4.4 QByteArray QByteArray::left(int len) const

      从最左侧第一个字节开始向右截取len个字节。

    QByteArray x("Pineapple");
    QByteArray y = x.left(4); // y == "Pine"

    附件:所有函数

    https://zhuanlan.zhihu.com/p/51728642

  • 相关阅读:
    Linux下查看使用的是哪种shell的方法汇总【转】
    Shell中的while循环【转】
    shell浅谈之三for、while、until循环【转】
    cpu_relax( )-----对自选循环等待(spin-wait loops)操作的优化【转】
    Linux makefile 教程 非常详细,且易懂【转】
    链表常见的问题【转】
    linux内核同步之信号量、顺序锁、RCU、完成量、关闭中断【转】
    linux内核同步之每CPU变量、原子操作、内存屏障、自旋锁【转】
    关于hrtimer_forward小段代码的分析【转】
    CTP多点触摸协议【转】
  • 原文地址:https://www.cnblogs.com/Mike2019/p/14183226.html
Copyright © 2011-2022 走看看