qstringview 用法
QStringView 是 Qt 5.10 引入的一个新类,它是 Qt 的 QSTRING 数据的非拥有型指针。QSTRING 类提供基本的字符串操作,而 QStringView 则提供了一种更轻量级的、零拷贝的方式来访问和操作字符串数据。QStringView 有助于提高程序的效率和性能,同时减少不必要的内存分配和复制。本文将一步一步地介绍 QStringView 的使用方法。
首先,我们需要创建一个 QStringView 实例。可以通过以下方式来获得一个 QStringView 对象:
cpp
QString str = "Hello, World!";
QStringView strView(str);
在上述代码中,我们将一个 QString 对象传递给 QStringView 的构造函数,从而创建了一个 QStringView 实例。这个 QStringView 实例现在指向 QString 对象的数据。
接下来,我们可以使用 QStringView 的各种函数和方法来访问和操作字符串数据。QStringView 提供了两类函数:成员函数和非成员函数。
- 成员函数:这些函数可以通过 QStringView 对象直接调用。
- 非成员函数:这些函数可以不通过 QStringView 对象直接调用,但需要将 QStringView 对象作为参数传递。
接下来,我们将一一介绍这些函数及其用法。
1. length() 函数:返回字符串的长度。例如:
cpp
int len = strView.length();
在上述代码中,我们将返回字符串 "Hello, World!" 的长度,即 13。
2. isEmpty() 函数:检查字符串是否为空。如果字符串为空,则返回 true;否则,返回 false。例如:
cpp
bool empty = strView.isEmpty();
在上述代码中,我们将检查 QStringView 对象是否为空。如果为空,则返回 true;否则,返回 false。
3. startsWith() 函数:检查字符串是否以指定的前缀开头。如果是,则返回 true;否则,返回 false。例如:
cpp
bool startsWith = strView.startsWith("Hello");
在上述代码中,我们将检查字符串 "Hello, World!" 是否以 "Hello" 开头。如果是,则返回 true;否则,返回 false。
4. endsWith() 函数:检查字符串是否以指定的后缀结尾。如果是,则返回 true;否则,返回 false。例如:
cpp
bool endsWith = dsWith("World!");
在上述代码中,我们将检查字符串 "Hello, World!" 是否以 "World!" 结尾。如果是,则返回 true;否则,返回 false。
5. left() 函数:返回字符串的左边指定长度的子字符串。例如:
cpp
QStringView leftStr = strView.left(5);指针调用成员函数
在上述代码中,我们将返回字符串 "Hello, World!" 的左边 5 个字符,即 "Hello"。
6. right() 函数:返回字符串的右边指定长度的子字符串。例如:
cpp
QStringView rightStr = strView.right(6);
在上述代码中,我们将返回字符串 "Hello, World!" 的右边 6 个字符,即 "World!"。
7. mid() 函数:返回字符串的中间指定长度的子字符串。例如:
cpp
QStringView midStr = strView.mid(7, 5);
在上述代码中,我们将返回字符串 "Hello, World!" 的中间 5 个字符,即 "World"。