1.clear() 函数来清空 QStringList 对象中的内容

Qt 中,我们可以使用 clear() 函数来清空 QStringList 对象中的内容,将其重新变为空列表。

以下示例代码演示了如何清空 QStringList 对象中的内容:

QStringList myList = {"apple", "banana", "orange", "peach"};myList.clear(); // 清空 QStringList 对象中的内容

在上述示例代码中,我们首先定义了一个 QStringList 对象 myList,并添加 4 个字符串元素。然后,我们使用 clear() 函数清空 QStringList 对象中的内容。执行该语句后,myList 变为一个空的 QStringList 对象。

2.last() 函数或 back() 函数获取 QStringList 中的最后一个元素

要读取 QStringList 中的最后一个元素,我们可以使用 QStringList 中的 last() 函数或 back() 函数来获取最后一个元素。这两个函数都可以返回 QStringList 中的最后一个元素。

以下示例代码演示如何读取 QStringList 中的最后一个元素:

QStringList myList = {"apple", "banana", "orange", "peach"};QString lastElement = myList.last(); // 使用 last() 函数获取最后一个元素QString backElement = myList.back(); // 使用 back() 函数获取最后一个元素

在上述示例代码中,我们首先定义了一个 QStringList 对象 myList,并添加 4 个字符串元素。然后,我们使用 last() 函数和 back() 函数分别获取了 QStringList 中的最后一个元素,最后将结果存储在了两个字符串变量中。

需要注意的是,当 QStringList 为空时,使用 last() 函数和 back() 函数都将返回一个空字符串,因此在使用这两个函数之前,应该先使用 isEmpty() 函数来判断 QStringList 是否为空。

2.1last() 函数和 back() 函数的区别

Qt 中,QStringList 类提供了两个函数来获取列表中的最后一个元素,分别为 last()back() 函数。这两个函数的作用非常相似,都可以用来获取 QStringList 中的最后一个元素。不过它们有细微的区别。

last() 函数根据文档的描述的返回值定义如下:

若列表中有元素,则返回最后一个元素。
若列表为空,则返回一个空字符串。

back() 函数根据文档的描述的返回值定义如下:

若列表中有元素,则返回最后一个元素的引用。
这意味着可以通过修改返回的变量来修改列表中的元素的值。
若列表为空,则返回一个空字符串。

因此,两个函数最主要的区别在于它们的返回值不同。

last() 函数返回最后一个元素的值,而 back() 函数返回最后一个元素的引用。
这也就意味着,如果使用 back() 函数修改最后一个元素的值,那么这个变化也会反映在 QStringList 对象中。

以下是使用示例代码:

QStringList list = {"apple", "orange", "banana"};QString back = list.back();  // 返回的是一个字符串变量back = "strawberry";  // 只是修改了一个常规字符串变量的值qDebug() << list;  // 输出列表:("apple", "orange", "strawberry")QString &last = list.last();  // 返回的是一个字符串变量的引用last = "kiwi";  // 修改最后一项已经改变了QStringList对象本身qDebug() << list;  // 输出列表:("apple", "orange", "kiwi")

在上例中,我们首先创建了一个 QStringList 对象 list,并添加了 3 个元素。然后,使用 back() 函数获取了列表中的最后一个元素,并将它修改为 "strawberry"。接着,使用 qDebug() 函数输出了修改后的列表,可以看到返回的字符串变量的值确实已经发生了改变,但是实际上 QStringList 对象本身的内容并没有改变。然后,我们使用 last() 函数获取了列表中的最后一个元素的引用,并将其修改为 "kiwi",而这个修改直接反映在了 QStringList 对象 list 中,输出的结果也表明了这一点。