Qt:QList

QList

0、说明

QList<T>

一个QList是存储相同类型一组数据的列表。

 

QStringList是从QList<String>继承而来,并添加了一些好用的方法,如join()、filter、split()

1)构造

QList<QString> list = { "one", "two", "three" };

2)增删

insert(), replace(), removeAt(), move() 和 swap()。

append(), operator<<(), operator+=(), prepend(), removeFirst() 和 removeLast()

list << "four" << "five";

3)访问

list[i]list.at(i)

at[ ]速度快,因为不会深拷贝

访问并移除

takeAt(), takeFirst(), and takeLast()

4)查找

indexOf() 、 lastIndexOf()

5)迭代器

Java样式:QListIterator 和 QMutableListIterator

STL样式:QList::const_iterator 和 QList::iterator

6)迭代

//
for (int i = 0; i < list.size(); ++i) {
    if (list.at(i) == "Jane")
        cout << "Found Jane at position " << i << Qt::endl;
}

//
while (!list.isEmpty())
    delete list.takeFirst();

 

1、模块和加载项

Header: #include <QList>
qmake: QT += core
Inherited By:

QByteArrayListQItemSelectionQQueue, and QStringList

2、构造

QList<QString> list = { "one", "two", "three" };
QList(QList<T> other) 另一个List的副本
QList() 空List

 

5、静态方法

QList<T> fromVector(const QVector<T> &vector) 从Vector转化

6、实例方法

返回值类型

方法

说明

QList<T> &

bool

QList<T>

QList<T> &

QList<T> &

QList<T> &

QList<T> &

bool

T

operator=(QList<T> other)

operator!=(QList<T> other)

operator+(QList<T> other)

operator+=(QList<T> other)

operator+=(T value)

operator<<(QList<T> other)

operator<<(T value)

operator==(QList<T> other)

operator[](int i)

赋值

 

void

append(T value)

append(QList<T> value)

往List最后添加元素,可以一次添加一个,也可以一次添加一个List
T at(int i) 访问
T back() 最后一个元素

QList::iterator

QList::const_iterator

begin() STL迭代器,指向第一个元素
QList::const_iterator cbegin() const STL迭代器,指向第一个元素
QList::const_iterator cend() const STL迭代器,指向最后一个元素之后的逻辑元素
void clear() 清空List
QList::const_iterator constBegin() const STL迭代器,指向第一个元素
QList::const_iterator constEnd() const STL迭代器,指向最后一个元素之后的逻辑元素
bool contains(T value) List中是否包含指定元素
int

count(T value)

count()

统计数量
QList::const_reverse_iterator crbegin() const STL逆序迭代器,指向逆序第一个元素
QList::const_reverse_iterator crend() const STL逆序迭代器,指向逆序最后一个元素之后的元素
bool empty() 是否为空

QList::iterator

QList::const_iterator

end() STL迭代器,指向最后一个元素之后的逻辑元素
bool  endsWith(T value) List是否以value结尾
 QList::iterator

erase(QList::iterator pos)

erase(QList::iterator begin, QList::iterator end)

迭代器,移除指定元素
 T first() 第一个元素
 T front() 等同于first()
 int indexOf(T value, int from = 0) 查找List中value第一次出现的位置

 void

QList::iterator

insert(int i, T value)

insert(QList::iterator before, T value)

在指定位置插入
 bool isEmpty() 是否为空 
 T last() 最后一个元素
 int lastIndexOf(T value, int from = -1) 逆序查找List中value第一次出现的位置
 int length() List长度,等同于count()
 QList<T> mid(int pos, int length = -1) 从pos开始长度为length的子List
 void move(int from, int to) 把list[from]移动到list[to],原来list[from+1]到list[to]前移
void  pop_back() 等同于removeLast(),移除最后一项
void  pop_front() 等同于removeFirst(),移除第一项
void  prepend(T value) 在开头添加元素
void  push_back(T value) 等同于append(),在末尾添加元素
void  push_front(T value) 等同于prepend(),在开头添加元素

 QList::reverse_iterator

QList::const_reverse_iterator

rbegin() STL样式迭代器,指向逆序第一个元素
 int removeAll(T value) 移除List中的所有value
 void removeAt(int i) 移除list[i]
void  removeFirst() 移除第一个元素
void  removeLast() 移除最后一个元素
 bool removeOne(T value) 移除List中的第一个value

 QList::reverse_iterator

QList::const_reverse_iterator

rend() STL样式逆序迭代器,指向逆序最后一个元素
 void replace(int i, T value) 替换指定位置的元素,等同于list[i]=value
void  reserve(int alloc) 保留alloc个元素的空间
 int size() List中的元素数
 bool startsWith(T value) List是否以value开始
 void swap(QList<T> &other) 交换两个List的元素
void  swapItemsAt(int i, int j) 交换List中位置i、j的元素
 T takeAt(int i) 移除并返回list[i]
takeFirst() 移除并返回第一个元素
takeLast() 移除并返回最后一个元素
QVector<T>  toVector() QList转QVector
 T

value(int i)

value(int i, T defaultValue)

等同于list[i],第二个方法指定如果不存在这个元素时返回的默认元素

 

QStringList

0、说明

专门存储String的List。

QStringList继承自QList<QString>,所有QList的方法都可以用于QStringList,不过QStringList还额外提供了一些更方便的方法。

1)初始化

QStringList fonts = { "Arial", "Helvetica", "Times" };

2)添加元素

 insert() 、append()、 operator+=() 、operator<<()

其中operator<<()最方便,且能一次加多个元素:

fonts << "Courier" << "Verdana";

3)迭代

//①索引,标准C++ for循环
    for (int i = 0; i < fonts.size(); ++i)
         cout << fonts.at(i).toLocal8Bit().constData() << Qt::endl;

//②Java样式迭代器
    QStringListIterator javaStyleIterator(fonts);
    while (javaStyleIterator.hasNext())
         cout << javaStyleIterator.next().toLocal8Bit().constData() << Qt::endl;

//③STL样式迭代器
    QStringList::const_iterator constIterator;
    for (constIterator = fonts.constBegin(); constIterator != fonts.constEnd();
           ++constIterator)
        cout << (*constIterator).toLocal8Bit().constData() << Qt::endl;

4)连接

用指定分隔符连接:join( seq )

    QStringList fonts = ["Arial", "Helvetica", "Times", "Courier"]
    QString str = fonts.join(", ");
     // str == "Arial, Helvetica, Times, Courier"

首尾连接:+

5)分割:split( seq )

    QStringList list;
    list = str.split(,);
     // list: ["Arial", "Helvetica", "Times", "Courier"]

6)排序:sort()

7)筛选:filter()

提取包含指定字串、指定正则表达式的子串

8)查找:contains()、indexOf()、lastIndexOf()

这三个函数功能分别是:是否包含指定字串、指定子串的第一个位置、逆向查看指定子串的第一个位置

9)替换:replaceInStrings()

对QStringList中的每个QString采用同一个替换方法,相当于对List中的所有QString调用QString::replace()方法:

    QStringList files;
    files << "$QTDIR/src/moc/moc.y"
          << "$QTDIR/src/moc/moc.l"
          << "$QTDIR/include/qconfig.h";

    files.replaceInStrings("$QTDIR", "/usr/lib/qt");
    // files: [ "/usr/lib/qt/src/moc/moc.y", ...]

 

1、模块和加载项

Header: #include <QStringList>
qmake: QT += core
Inherits: QList

2、构造

3、静态字段

4、实例字段

5、静态方法

6、实例方法

Qt:QList

上一篇:vue项目chorme浏览器关闭自动填充密码


下一篇:Hadoop中的jobhistory配置与启动停止