字符串类#

group 字符串
class string_view#
#include <string_view.hpp>

一个非拥有、不可变的设备数据视图,表示一个可变长度的 char 数组,代表 UTF-8 字符串。

调用者必须维护该实例生命周期内的设备内存。

这可用于包装设备指针和大小,但任何需要访问设备内存的成员函数都必须从内核中调用。

公共函数

inline size_type size_bytes() const#

返回此字符串中的字节数。

返回:

此字符串中的字节数

inline size_type length() const#

返回此字符串中的字符数。

返回:

此字符串中的字符数

inline char const *data() const#

返回指向内部设备数组的指针。

返回:

指向内部设备数组的指针

inline bool empty() const#

如果字符串不包含任何字符,则返回 true。

返回:

如果字符串不包含任何字符,则为 true

inline const_iterator begin() const#

返回指向此字符串开头的新的迭代器。

返回:

指向此字符串开头的新的迭代器

inline const_iterator end() const#

返回指向此字符串末尾之后的新的迭代器。

返回:

指向此字符串末尾之后的新的迭代器

inline char_utf8 operator[](size_type pos) const#

返回给定字符位置的单个 UTF-8 字符。

参数:

pos – 字符位置

返回:

给定字符位置的 UTF-8 字符

inline size_type byte_offset(size_type pos) const#

返回给定字符位置相对于 data() 的字节偏移量。

参数:

pos – 字符位置

返回:

给定字符位置相对于 data() 的字节偏移量

inline int compare(string_view const &str) const#

将目标字符串与此字符串进行比较。每个字符都作为 UTF-8 码点值进行比较。

参数:

str – 用于与此字符串比较的目标字符串。

返回:

0 如果它们相等。<0 如果此字符串中第一个不匹配字符的值在参数字符串中较低,或者所有比较的字符都匹配但参数字符串较短。>0 如果此字符串中第一个不匹配字符的值在参数字符串中较高,或者所有比较的字符都匹配但参数字符串较长。

inline int compare(char const *str, size_type bytes) const#

将目标字符串与此字符串进行比较。每个字符都作为 UTF-8 码点值进行比较。

参数:
  • str – 用于与此字符串比较的目标字符串。

  • bytes – str 中的字节数。

返回:

0 如果它们相等。<0 如果此字符串中第一个不匹配字符的值在参数字符串中较低,或者所有比较的字符都匹配但参数字符串较短。>0 如果此字符串中第一个不匹配字符的值在参数字符串中较高,或者所有比较的字符都匹配但参数字符串较长。

inline bool operator==(string_view const &rhs) const#

如果 rhs 与此字符串完全匹配,则返回 true。

参数:

rhs – 用于与此字符串比较的目标字符串。

返回:

如果 rhs 与此字符串完全匹配,则为 true

inline bool operator!=(string_view const &rhs) const#

如果 rhs 与此字符串不匹配,则返回 true。

参数:

rhs – 用于与此字符串比较的目标字符串。

返回:

如果 rhs 与此字符串不匹配,则为 true

inline bool operator<(string_view const &rhs) const#

如果此字符串的排序在 rhs 之前,则返回 true。

参数:

rhs – 用于与此字符串比较的目标字符串。

返回:

如果此字符串的排序在 rhs 之前,则为 true

inline bool operator>(string_view const &rhs) const#

如果 rhs 的排序在此字符串之前,则返回 true。

参数:

rhs – 用于与此字符串比较的目标字符串。

返回:

如果 rhs 的排序在此字符串之前,则为 true

inline bool operator<=(string_view const &rhs) const#

如果此字符串匹配或排序在 rhs 之前,则返回 true。

参数:

rhs – 用于与此字符串比较的目标字符串。

返回:

如果此字符串匹配或排序在 rhs 之前,则为 true

inline bool operator>=(string_view const &rhs) const#

如果 rhs 匹配或排序在此字符串之前,则返回 true。

参数:

rhs – 用于与此字符串比较的目标字符串。

返回:

如果 rhs 匹配或排序在此字符串之前,则为 true

inline size_type find(string_view const &str, size_type pos = 0, size_type count = -1) const#

返回参数 str 在此字符串中字符范围 [pos,pos+n) 内首次出现的字符位置。

参数:
  • str – 在此字符串中搜索的目标字符串。

  • pos – 在此字符串中开始搜索的字符位置。

  • count – 从 pos 开始包含在搜索中的字符数。指定 -1 表示到字符串末尾。

返回:

如果在字符串中未找到 str,则返回 npos。

inline size_type find(char const *str, size_type bytes, size_type pos = 0, size_type count = -1) const#

返回数组 str 在此字符串中字符范围 [pos,pos+n) 内首次出现的字符位置。

参数:
  • str – 在此字符串中搜索的目标数组。

  • bytes – str 中的字节数。

  • pos – 在此字符串中开始搜索的字符位置。

  • count – 从 pos 开始包含在搜索中的字符数。指定 -1 表示到字符串末尾。

返回:

如果在字符串中未找到参数字符串,则返回 npos。

inline size_type find(char_utf8 character, size_type pos = 0, size_type count = -1) const#

返回字符 character 在此字符串中字符范围 [pos,pos+n) 内首次出现的字符位置。

参数:
  • character – 单个编码字符。

  • pos – 在此字符串中开始搜索的字符位置。

  • count – 从 pos 开始包含在搜索中的字符数。指定 -1 表示到字符串末尾。

返回:

如果在字符串中未找到参数字符串,则返回 npos。

inline size_type rfind(string_view const &str, size_type pos = 0, size_type count = -1) const#

返回参数 str 在此字符串中字符范围 [pos,pos+n) 内最后一次出现的字符位置。

参数:
  • str – 在此字符串中搜索的目标字符串。

  • pos – 在此字符串中开始搜索的字符位置。

  • count – 从 pos 开始包含在搜索中的字符数。指定 -1 表示到字符串末尾。

返回:

如果在字符串中未找到参数字符串,则返回 npos。

inline size_type rfind(char const *str, size_type bytes, size_type pos = 0, size_type count = -1) const#

返回数组 str 在此字符串中字符范围 [pos,pos+n) 内最后一次出现的字符位置。

参数:
  • str – 用于在此字符串中搜索的目标字符串。

  • bytes – str 中的字节数。

  • pos – 在此字符串中开始搜索的字符位置。

  • count – 从 pos 开始包含在搜索中的字符数。指定 -1 表示到字符串末尾。

返回:

如果在字符串中未找到参数字符串,则返回 npos。

inline size_type rfind(char_utf8 character, size_type pos = 0, size_type count = -1) const#

返回字符 character 在此字符串中字符范围 [pos,pos+n) 内最后一次出现的字符位置。

参数:
  • character – 单个编码字符。

  • pos – 在此字符串中开始搜索的字符位置。

  • count – 从 pos 开始包含在搜索中的字符数。指定 -1 表示到字符串末尾。

返回:

如果在字符串中未找到参数字符串,则返回 npos。

inline string_view substr(size_type start, size_type length) const#

返回此字符串的子字符串。必须维护原始字符串和设备内存,以确保返回实例的生命周期。

参数:
  • start – 子字符串的起始字符位置。

  • length – 从 start 开始包含在子字符串中的字符数。

返回:

指向此实例中字符子集的新实例。

inline string_view()#

默认构造函数表示一个空字符串。

inline string_view(char const *data, size_type bytes)#

从现有设备 char 数组创建实例。

参数:
  • data – 用 UTF8 编码的设备 char 数组。

  • bytes – data 数组中的字节数。

string_view(string_view const&) = default#

复制构造函数。

string_view(string_view&&) = default#

移动构造函数。

string_view &operator=(string_view const&) = default#

复制赋值运算符。

返回:

对此实例的引用

string_view &operator=(string_view&&) = default#

移动赋值运算符。

返回:

对此实例的引用(所有权转移后)

公共静态函数

static inline string_view min()#

返回与字符串类型关联的最小值。

此函数需要可由主机调用,因为它由可由主机调用的函数 DeviceMax::identity<string_view>() 调用。

返回:

一个空字符串

static inline string_view max()#

返回与字符串类型关联的最大值。

此函数需要可由主机调用,因为它由可由主机调用的函数 DeviceMin::identity<string_view>() 调用。

返回:

一个字符串值,表示可能的最高有效 UTF-8 编码字符。

公共静态属性

static cudf::size_type const npos = {-1}#

无位置值。

用于指定或返回无效或未知字符位置值时。

class const_iterator#
#include <string_view.hpp>

方便的迭代器,用于遍历编码字符。

class strings_column_view : private cudf::column_view#
#include <strings_column_view.hpp>

给定一个字符串类型的列视图,此类的实例为该复合列提供了用于字符串操作的包装器。

公共类型

using offset_iterator = size_type const*#

偏移迭代器类型

using chars_iterator = char const*#

字符迭代器类型

公共函数

strings_column_view(column_view strings_column)#

从列视图构造新的字符串列视图对象。

参数:

strings_column – 要包装的列视图。

strings_column_view(strings_column_view&&) = default#

移动构造函数。

strings_column_view(strings_column_view const&) = default#

复制构造函数。

strings_column_view &operator=(strings_column_view const&) = default#

复制赋值运算符。

返回:

对此实例的引用

strings_column_view &operator=(strings_column_view&&) = default#

移动赋值运算符。

返回:

对此实例的引用(所有权转移后)

column_view parent() const#

返回父列。

返回:

父列

column_view offsets() const#

返回内部偏移列。

抛出:

cudf::logic_error – 如果这是一个空列

返回:

偏移列

int64_t chars_size(rmm::cuda_stream_view stream) const noexcept#

返回 chars 子列中的字节数。

这会考虑空列,但不反映切片的父列视图(即:非零偏移量或减少的行数)。

参数:

stream – 用于设备内存操作和内核启动的 CUDA 流

返回:

chars 子列中的字节数

chars_iterator chars_begin(rmm::cuda_stream_view) const#

返回 chars 子列的迭代器。

这不应用父级的偏移量。必须使用 offsets 子级来正确寻址 char 字节。

例如,要访问字符串 i 的第一个字符(考虑切片列偏移量),请使用:chars_begin(stream)[offsets_begin()[i]]

返回:

指向第一个 char 字节的迭代器。

chars_iterator chars_end(rmm::cuda_stream_view stream) const#

返回 offsets 子列的结束迭代器。

这不应用父级的偏移量。必须使用 offsets 子级来正确寻址 char 字节。

参数:

stream – 用于设备内存操作和内核启动的 CUDA 流

返回:

指向最后一个 char 字节后一位的迭代器。

公共静态属性

static constexpr size_type offsets_column_index = {0}#

偏移列的子索引。