字符串类#

group strings_classes
class string_view#
#include <string_view.hpp>

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

调用者必须在此实例的整个生命周期内维护设备内存。

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

公共函数

inline size_type size_bytes() const#

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

Returns:

此字符串中的字节数

inline size_type length() const#

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

Returns:

此字符串中的字符数

inline char const *data() const#

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

Returns:

指向内部设备数组的指针

inline bool empty() const#

如果字符串没有字符,则返回true。

Returns:

如果字符串没有字符,则为true

inline const_iterator begin() const#

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

Returns:

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

inline const_iterator end() const#

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

Returns:

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

inline char_utf8 operator[](size_type pos) const#

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

Parameters:

pos – 字符位置

Returns:

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

inline size_type byte_offset(size_type pos) const#

返回从data()到给定字符位置的字节偏移量。

Parameters:

pos – 字符位置

Returns:

data()开始的字节偏移量,用于给定字符位置

inline int compare(string_view const &str) const#

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

Parameters:

str – 要与此字符串进行比较的目标字符串。

Returns:

0 如果它们相等。<0 要么是这个字符串中第一个不匹配的字符的值在arg字符串中较低,要么所有比较的字符都匹配但arg字符串较短。>0 要么是这个字符串中第一个不匹配的字符的值在arg字符串中较高,要么所有比较的字符都匹配但arg字符串较长。

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

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

Parameters:
  • str – 要与此字符串进行比较的目标字符串。

  • bytes – str中的字节数。

Returns:

0 如果它们相等。<0 要么是这个字符串中第一个不匹配的字符在arg字符串中的值较低,要么所有比较的字符都匹配但arg字符串较短。>0 要么是这个字符串中第一个不匹配的字符在arg字符串中的值较高,要么所有比较的字符都匹配但arg字符串较长。

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

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

Parameters:

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

Returns:

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

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

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

Parameters:

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

Returns:

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

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

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

Parameters:

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

Returns:

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

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

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

Parameters:

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

Returns:

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

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

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

Parameters:

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

Returns:

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

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

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

Parameters:

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

Returns:

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

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

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

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

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

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

Returns:

如果在此字符串中未找到str,则为npos。

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

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

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

  • bytes – str中的字节数。

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

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

Returns:

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

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

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

Parameters:
  • character – 单个编码字符。

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

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

Returns:

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

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

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

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

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

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

Returns:

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

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

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

Parameters:
  • str – 用于搜索的目标字符串。

  • bytes – str中的字节数。

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

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

Returns:

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

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

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

Parameters:
  • character – 单个编码字符。

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

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

Returns:

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

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

返回此字符串的子字符串。原始字符串和设备内存必须在返回实例的整个生命周期内保持。

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

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

Returns:

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

inline string_view()#

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

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

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

Parameters:
  • data – 以UTF8编码的设备字符数组。

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

string_view(string_view const&) = default#

复制构造函数。

string_view(string_view&&) = default#

移动构造函数。

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

复制赋值运算符。

Returns:

引用此实例

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

移动赋值运算符。

Returns:

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

公共静态函数

static inline string_view min()#

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

此函数需要可被主机调用,因为它是由一个可被主机调用的函数 DeviceMax::identity() 调用的。

Returns:

一个空字符串

static inline string_view max()#

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

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

Returns:

一个字符串值,表示最高可能的有效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)#

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

Parameters:

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#

复制赋值运算符。

Returns:

引用此实例

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

移动赋值运算符。

Returns:

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

column_view parent() const#

返回父列。

Returns:

父级列

column_view offsets() const#

返回内部偏移量列。

Throws:

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

Returns:

偏移量列

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

返回chars子列中的字节数。

这解释了空列的情况,但并未反映切片父列视图(即:非零偏移或减少的行数)。

Parameters:

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

Returns:

字符子列中的字节数

chars_iterator chars_begin(rmm::cuda_stream_view) const#

返回chars子列的迭代器。

这不适用于父级的偏移量。必须使用偏移量子级来正确寻址字符字节。

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

Returns:

迭代器指向第一个字符字节。

chars_iterator chars_end(rmm::cuda_stream_view stream) const#

返回偏移量子列的结束迭代器。

这不适用于父级的偏移量。必须使用子级的偏移量来正确寻址字符字节。

Parameters:

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

Returns:

迭代器指向最后一个字符字节后的1个位置。

公共静态属性

static constexpr size_type offsets_column_index = {0}#

偏移量列的子索引。