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

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

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

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

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

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

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

l 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相同。

QVector&lt;QString&gt; 显示器里面的动态数组元素QString和char *转变的更多相关文章

  1. nginx学习七 高级数据结构之动态数组ngx_array_t

    1 ngx_array_t结构 ngx_array_t是nginx内部使用的数组结构.nginx的数组结构在存储上与大家认知的C语言内置的数组有相似性.比方实际上存储数据的区域也是一大块连续的内存. ...

  2. 01-java实现动态数组

    01-手撸动态数组 本篇是恋上数据结构第一季个人总结 借鉴https://juejin.im/post/6844904001478066183#heading-0 本人git https://gith ...

  3. 常用数据结构-线性表及Java 动态数组 深究

    [Java心得总结六]Java容器中——Collection在前面自己总结的一篇博文中对Collection的框架结构做了整理,这里深究一下Java中list的实现方式 1.动态数组 In compu ...

  4. C语言 · 动态数组的使用

    从键盘读入n个整数,使用动态数组存储所读入的整数,并计算它们的和与平均值分别输出.要求尽可能使用函数实现程序代码.平均值为小数的只保留其整数部分. 样例输入: 5 3 4 0 0 2样例输出:9 1样 ...

  5. C++中关于[]静态数组和new分配的动态数组的区别分析

    这篇文章主要介绍了C++中关于[]静态数组和new分配的动态数组的区别分析,很重要的概念,需要的朋友可以参考下 本文以实例分析了C++语言中关于[]静态数组和new分配的动态数组的区别,可以帮助大家加 ...

  6. C++之动态数组

    C99支持一种名为变长数组的结构来方便程序员.C++也提供了一种长度可在程序运行时确定的数组类型:动态数组.声明格式为:(声明 int 类型的数组) ; //此处可修改 ArraySize 的值 in ...

  7. VB默认属性、动态数组、Range对象的默认属性的一点不成熟的想法

    1.默认属性 VB6.0有默认属性的特性.当没有给对象指定具体的属性时,"默认属性"是VB6.0将使用的属性.在某些情形下,省略常用属性名,使代码更为精简. 因为CommandBu ...

  8. 动态生成元素动作绑定,jquery 1.9如何实现

    1.7后增加了 live()1.9后被移除了 网上说可以用 on() 代替 可以实际在动态生成元素上绑定动作,没效果,求解绝方法(用低版本的jQuery这种方法,求别说..) 答: 之前有老兄回答过类 ...

  9. C#有关数组内存的释放及动态数组问题

    一.数组内存释放问题 数组内存的释放可以按照如下语句实现: string [] aa=new string[2]; aa[0]="A"; aa[1]="B"; ...

随机推荐

  1. Visual Studio Code中文文档

    Visual Studio Code中文文档 Visual Studio Code是一个轻量级但是十分强大的源代码编辑器,重要的是它在Windows, OS X 和Linux操作系统的桌面上均可运行. ...

  2. CURD演示 2

    <?php class UserAction extends Action{ public function index(){ echo "你好!"; $m=M('user' ...

  3. SVM入门(十)将SVM用于多类分类

    源地址:http://www.blogjava.net/zhenandaci/archive/2009/03/26/262113.html 从 SVM的那几张图可以看出来,SVM是一种典型的两类分类器 ...

  4. 如何制作python安装模块(setup.py)

    Python模块的安装方法: 1. 单文件模块:直接把文件拷贝到$python_dir/lib 2. 多文件模块,带setup.py:python setup.py install 3. egg文件, ...

  5. QLineEdit 自动完成(使用setCompleter,内含一个ListView)

    -------------------------------------CompleteLineEdit.h------------------------------------- #ifndef ...

  6. Delphi 中 FindWindow 和 FindWindowEx 找到外部进程,然后发送消息(比如最大化)

    FindWindow(lpClassName,        {窗口的类名}lpWindowName: PChar {窗口的标题}): HWND;              {返回窗口的句柄; 失败返 ...

  7. java学习笔记05--字符串 .

    java学习笔记05--字符串 . 一.String类 由字符所组成的一串文字符号被称之为字符串.在java中字符串不仅仅是字符数组,而且是String类的一个实例,可以使用String类来构建. 字 ...

  8. Mysql 导入导出数据结构及数据

    方式一: mysqldump -ukevin -P3306 --default-character-set=utf8 -p -h10.1.15.123 activity sign_in_user &g ...

  9. 【剑指offer】不用加减乘除做加法

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/27966641 题目描写叙述: 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.* ...

  10. 《Android系统开发》笔记

    <Android系统开发>笔记1:Android系统概述 Android四层架构: 1. Linux Kernel&driver层 a.依赖于Linux 2.6内核,包含安全性.内 ...