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

  • 相关阅读:
    SBT树
    WGS84、Web墨卡托、火星坐标、百度坐标互转
    Chord算法
    马尔科夫及隐含马尔科夫模型
    VirtualBox的四种网络连接方式
    匈牙利算法求解任务分配问题
    回溯与分支定界
    【Docker】docker安装mysql
    【RocketMQ】同一个项目中,同一个topic,可以存在多个消费者么?
    【Feign调用异常】org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'GET' not supported
  • 原文地址:https://www.cnblogs.com/Mike2019/p/14183226.html
Copyright © 2011-2022 走看看