一个QList是存储相同类型一组数据的列表。
QStringList是从QList
QList
insert(), replace(), removeAt(), move() 和 swap()。
append(), operator<<(), operator+=(), prepend(), removeFirst() 和 removeLast()
list << "four" << "five";
at比[ ]速度快,因为不会深拷贝
takeAt(), takeFirst(), and takeLast()
indexOf() 、 lastIndexOf()
Java样式:QListIterator 和 QMutableListIterator
STL样式:QList::const_iterator 和 QList::iterator
//①
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();
Header:
#include
qmake:
QT += core
Inherited By:
QByteArrayList, QItemSelection, QQueue, and QStringList
QList
QList(QList
另一个List的副本
QList()
空List
QList
fromVector(const QVector
从Vector转化
QList
bool
QList
QList
QList
QList
QList
bool
T
operator=(QList
operator!=(QList
operator+(QList
operator+=(QList
operator+=(T value)
operator<<(QList
operator<<(T value)
operator==(QList
operator[](int i)
赋值
判断两个QList是否不相等
往List末尾加入另一个QList
往List末尾加入另一个QList
往List末尾加入单个元素
往List末尾加入另一个QList
往List末尾加入单个元素
判断两个QList是否相等
list[i]提取索引i
void
append(T value)
append(QList
往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
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
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
等同于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
移除第一个元素
void
移除最后一个元素
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
交换两个List的元素
void
swapItemsAt(int i, int j)
交换List中位置i、j的元素
T
takeAt(int i)
移除并返回list[i]
T
移除并返回第一个元素
T
takeLast()
移除并返回最后一个元素
QVector
toVector()
QList转QVector
T
value(int i)
value(int i, T defaultValue)
等同于list[i],第二个方法指定如果不存在这个元素时返回的默认元素
专门存储String的List。
QStringList继承自QList
QStringList fonts = { "Arial", "Helvetica", "Times" };
insert() 、append()、 operator+=() 、operator<<()
其中operator<<()最方便,且能一次加多个元素:
fonts << "Courier" << "Verdana";
//①索引,标准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;
QStringList fonts = \["Arial", "Helvetica", "Times", "Courier"\]
QString str = fonts.join(", ");
// str == "Arial, Helvetica, Times, Courier"
QStringList list;
list = str.split(',');
// list: \["Arial", "Helvetica", "Times", "Courier"\]
提取包含指定字串、指定正则表达式的子串
这三个函数功能分别是:是否包含指定字串、指定子串的第一个位置、逆向查看指定子串的第一个位置
对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", ...\]
Header:
#include
qmake:
QT += core
Inherits:
QStringList(InputIterator first, InputIterator last)
用迭代器中[first , last)中的内容构造QStrintList,该InputIterator的内容必须是QString
QStringList(std::initializer_list
这种构造方法说明可以用
QStringList sl = { "Apple" , "Banana" , "Orange" };
形式来构造QStringList
QStringList(QList
用一个QList
QStringList(QString str)
构造只有单个QString元素str的QStringList
构造空QStringList
除了所有QList的方法外,还有一些QStringList独有的方法,这里只单列出后者:
QStringList &
operator=(QList
operator+(QStringList other)
operator<<(QString str)
operator<<(QStringList other)
operator<<(QList
赋值
连接
用<<往QStringList中加元素,可以一次加一个QString,也可以一次加一个List或QStringList中的所有元素
bool
contains(QString str, Qt::CaseSensitivity cs = Qt::CaseSensitive)
是否包含指定QSTRING
QStringList
filter(QString str, Qt::CaseSensitivity cs = Qt::CaseSensitive)
filter(QRegExp rx)
filter(QRegularExpression r_e_)
筛选所有符合要求的子串构成新的QStringList,后两项说明可以用正则
int
indexOf(QRegExp rx, int from = 0)
indexOf(QRegularExpression re, int from = 0)
返回第一个符合正则的子串的位置
QString
join(QString separator)
join(QChar separator)
用指定分隔符连接QStringList中的所有QString
int
lastIndexOf(QRegExp rx, int from = -1)
lastIndexOf(QRegularExpression re, int from = -1)
逆向查找,返回第一个符合正则的子串的位置
int
移除所有List中所有相同的QString,只保留一个
QStringList &
replaceInStrings(QString before, QString after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
replaceInStrings(QRegExp rx, const QString &after)
replaceInStrings(QRegularExpression re, const QString &after)
用相同规则对List中所有QString进行替换
void
sort(Qt::CaseSensitivity cs = Qt::CaseSensitive)
排序
手机扫一扫
移动阅读更方便
你可能感兴趣的文章