|
DAWorkbench 0.0.1
DAWorkbench API
|
二维表格数据结构,使用一维数组存储以提高缓存友好性 更多...
#include <da_vector_table.hpp>
Public 成员函数 | |
| da_vector_table () | |
| 默认构造函数 | |
| da_vector_table (std::size_t rows, std::size_t cols=0, const T &value=T()) | |
| 构造函数,创建指定大小的表格 | |
| da_vector_table (std::initializer_list< std::initializer_list< T > > init) | |
| 使用初始化列表构造表格 | |
| da_vector_table (const da_vector_table &other) | |
| 拷贝构造函数 | |
| da_vector_table (da_vector_table &&other) noexcept | |
| 移动构造函数 | |
| da_vector_table & | operator= (const da_vector_table &other) |
| 拷贝赋值运算符 | |
| da_vector_table & | operator= (da_vector_table &&other) noexcept |
| 移动赋值运算符 | |
| bool | empty () const noexcept |
| 检查表格是否为空 | |
| std::size_t | size () const noexcept |
| 返回表格中的元素总数 | |
| std::size_t | max_size () const noexcept |
| 返回表格可容纳的最大元素数 | |
| void | reserve (std::size_t new_cap) |
| 预留存储空间 | |
| std::size_t | capacity () const noexcept |
| 返回当前分配的存储容量 | |
| void | shrink_to_fit () |
| 请求移除未使用的容量 | |
| iterator | begin () noexcept |
| 返回指向表格第一个元素的迭代器 | |
| const_iterator | begin () const noexcept |
| 返回指向表格第一个元素的常量迭代器 | |
| const_iterator | cbegin () const noexcept |
| 返回指向表格第一个元素的常量迭代器 | |
| iterator | end () noexcept |
| 返回指向表格尾后位置的迭代器 | |
| const_iterator | end () const noexcept |
| 返回指向表格尾后位置的常量迭代器 | |
| const_iterator | cend () const noexcept |
| 返回指向表格尾后位置的常量迭代器 | |
| reverse_iterator | rbegin () noexcept |
| 返回指向表格最后一个元素的反向迭代器 | |
| const_reverse_iterator | rbegin () const noexcept |
| 返回指向表格最后一个元素的常量反向迭代器 | |
| const_reverse_iterator | crbegin () const noexcept |
| 返回指向表格最后一个元素的常量反向迭代器 | |
| reverse_iterator | rend () noexcept |
| 返回指向表格第一个元素前一个位置的反向迭代器 | |
| const_reverse_iterator | rend () const noexcept |
| 返回指向表格第一个元素前一个位置的常量反向迭代器 | |
| const_reverse_iterator | crend () const noexcept |
| 返回指向表格第一个元素前一个位置的常量反向迭代器 | |
| T & | operator() (std::size_t row, std::size_t col) |
| 访问指定位置的元素(函数调用运算符) | |
| const T & | operator() (std::size_t row, std::size_t col) const |
| 访问指定位置的元素(函数调用运算符,常量版本) | |
| T & | at (std::size_t row, std::size_t col) |
| 访问指定位置的元素,带边界检查 | |
| const T & | at (std::size_t row, std::size_t col) const |
| 访问指定位置的元素,带边界检查(常量版本) | |
| T & | front () |
| 访问表格的第一个元素 | |
| const T & | front () const |
| 访问表格的第一个元素(常量版本) | |
| T & | back () |
| 访问表格的最后一个元素 | |
| const T & | back () const |
| 访问表格的最后一个元素(常量版本) | |
| T * | data () noexcept |
| 返回指向底层数组的指针 | |
| const T * | data () const noexcept |
| 返回指向底层数组的指针(常量版本) | |
| void | assign (std::size_t rows, std::size_t cols, const T &value) |
| 分配新内容替换当前内容 | |
| template<typename InputIt > | |
| void | assign (InputIt first, InputIt last) |
| 使用迭代器范围分配新内容替换当前内容 | |
| void | push_back (const T &value) |
| 在表格末尾添加一个元素 | |
| void | push_back (T &&value) |
| 在表格末尾添加一个元素(移动语义) | |
| template<typename... Args> | |
| void | emplace_back (Args &&... args) |
| 在表格末尾原位构造一个元素 | |
| void | pop_back () |
| 移除表格的最后一个元素 | |
| void | clear () noexcept |
| 清空表格中的所有元素 | |
| void | swap (da_vector_table &other) noexcept |
| 交换两个表格的内容 | |
| void | append_row (const std::vector< T > &row) |
| 在表格末尾添加一行 | |
| void | append_row (std::vector< T > &&row) |
| 在表格末尾添加一行(移动语义) | |
| template<typename InputIt > | |
| void | append_row (InputIt first, InputIt last) |
| 使用迭代器范围在表格末尾添加一行 | |
| void | append_row (std::initializer_list< T > il) |
| 使用初始化列表在表格末尾添加一行 | |
| void | insert_row (std::size_t pos, const std::vector< T > &row) |
| 在指定位置插入一行 | |
| void | insert_row (std::size_t pos, std::vector< T > &&row) |
| 在指定位置插入一行(移动语义) | |
| void | erase_row (std::size_t pos) |
| 移除指定位置的行 | |
| void | append_column (const std::vector< T > &col) |
| 在表格末尾添加一列 | |
| void | append_column (std::vector< T > &&col) |
| 在表格末尾添加一列(移动语义) | |
| template<typename InputIt > | |
| void | append_column (InputIt first, InputIt last) |
| 使用迭代器范围在表格末尾添加一列 | |
| void | append_column (std::initializer_list< T > il) |
| 使用初始化列表在表格末尾添加一列 | |
| void | insert_column (std::size_t pos, const std::vector< T > &col) |
| 在指定位置插入一列 | |
| void | insert_column (std::size_t pos, std::vector< T > &&col) |
| 在指定位置插入一列(移动语义) | |
| void | erase_column (std::size_t pos) |
| 移除指定位置的列(高效版本) | |
| table_index_type | shape () const noexcept |
| 获取表格的形状(行数和列数) | |
| std::size_t | row_count () const noexcept |
| 获取表格的行数 | |
| std::size_t | column_count () const noexcept |
| 获取表格的列数 | |
| void | resize (std::size_t rows, std::size_t cols, const T &value=T()) |
| 调整表格大小 | |
| void | resize (table_index_type sh, const T &value=T()) |
| 使用形状对象调整表格大小 | |
| void | reshape (std::size_t rows, std::size_t cols) |
| 改变表格形状而不改变数据总量 | |
| bool | is_rectangular () const noexcept |
| std::vector< T > | get_row (std::size_t row) const |
| 获取指定行的数据 | |
| std::vector< T > | get_column (std::size_t col) const |
| 获取指定列的数据 | |
| void | set_row (std::size_t row, const std::vector< T > &values) |
| 设置指定行的数据 | |
| void | set_column (std::size_t col, const std::vector< T > &values) |
| 设置指定列的数据 | |
二维表格数据结构,使用一维数组存储以提高缓存友好性
| T | 表格中存储的元素类型 |
此类提供了一个二维表格数据结构,内部使用一维数组存储以提高内存局部性和缓存友好性。 适合存放规则的结构化数据,并提供高效的随机访问性能。
| DA::da_vector_table< T >::da_vector_table | ( | ) |
|
explicit |
构造函数,创建指定大小的表格
| T | 表格元素类型 |
| rows | 行数 |
| cols | 列数 |
| value | 初始值 |
| DA::da_vector_table< T >::da_vector_table | ( | std::initializer_list< std::initializer_list< T > > | init | ) |
使用初始化列表构造表格
| T | 表格元素类型 |
| init | 初始化列表 |
| DA::da_vector_table< T >::da_vector_table | ( | const da_vector_table< T > & | other | ) |
拷贝构造函数
| T | 表格元素类型 |
| other | 要拷贝的表格 |
|
noexcept |
移动构造函数
| T | 表格元素类型 |
| other | 要移动的表格 |
| void DA::da_vector_table< T >::append_column | ( | const std::vector< T > & | col | ) |
在表格末尾添加一列
| T | 表格元素类型 |
| col | 要添加的列 |
| void DA::da_vector_table< T >::append_column | ( | InputIt | first, |
| InputIt | last | ||
| ) |
使用迭代器范围在表格末尾添加一列
| T | 表格元素类型 |
| InputIt | 输入迭代器类型 |
| first | 范围起始迭代器 |
| last | 范围结束迭代器 |
| void DA::da_vector_table< T >::append_column | ( | std::initializer_list< T > | il | ) |
使用初始化列表在表格末尾添加一列
| T | 表格元素类型 |
| il | 初始化列表 |
| void DA::da_vector_table< T >::append_column | ( | std::vector< T > && | col | ) |
在表格末尾添加一列(移动语义)
| T | 表格元素类型 |
| col | 要添加的列 |
| void DA::da_vector_table< T >::append_row | ( | const std::vector< T > & | row | ) |
在表格末尾添加一行
| T | 表格元素类型 |
| row | 要添加的行 |
| void DA::da_vector_table< T >::append_row | ( | InputIt | first, |
| InputIt | last | ||
| ) |
使用迭代器范围在表格末尾添加一行
| T | 表格元素类型 |
| InputIt | 输入迭代器类型 |
| first | 范围起始迭代器 |
| last | 范围结束迭代器 |
| void DA::da_vector_table< T >::append_row | ( | std::initializer_list< T > | il | ) |
使用初始化列表在表格末尾添加一行
| T | 表格元素类型 |
| il | 初始化列表 |
| void DA::da_vector_table< T >::append_row | ( | std::vector< T > && | row | ) |
在表格末尾添加一行(移动语义)
| T | 表格元素类型 |
| row | 要添加的行 |
| void DA::da_vector_table< T >::assign | ( | InputIt | first, |
| InputIt | last | ||
| ) |
使用迭代器范围分配新内容替换当前内容
| T | 表格元素类型 |
| InputIt | 输入迭代器类型 |
| first | 范围起始迭代器 |
| last | 范围结束迭代器 |
| void DA::da_vector_table< T >::assign | ( | std::size_t | rows, |
| std::size_t | cols, | ||
| const T & | value | ||
| ) |
分配新内容替换当前内容
| T | 表格元素类型 |
| rows | 新行数 |
| cols | 新列数 |
| value | 填充值 |
| T & DA::da_vector_table< T >::at | ( | std::size_t | row, |
| std::size_t | col | ||
| ) |
访问指定位置的元素,带边界检查
| T | 表格元素类型 |
| row | 行索引 |
| col | 列索引 |
| std::out_of_range | 如果row或col超出范围 |
| const T & DA::da_vector_table< T >::at | ( | std::size_t | row, |
| std::size_t | col | ||
| ) | const |
访问指定位置的元素,带边界检查(常量版本)
| T | 表格元素类型 |
| row | 行索引 |
| col | 列索引 |
| std::out_of_range | 如果row或col超出范围 |
| T & DA::da_vector_table< T >::back | ( | ) |
访问表格的最后一个元素
| T | 表格元素类型 |
| const T & DA::da_vector_table< T >::back | ( | ) | const |
访问表格的最后一个元素(常量版本)
| T | 表格元素类型 |
|
noexcept |
返回指向表格第一个元素的常量迭代器
| T | 表格元素类型 |
|
noexcept |
返回指向表格第一个元素的迭代器
| T | 表格元素类型 |
|
noexcept |
返回当前分配的存储容量
| T | 表格元素类型 |
|
noexcept |
返回指向表格第一个元素的常量迭代器
| T | 表格元素类型 |
|
noexcept |
返回指向表格尾后位置的常量迭代器
| T | 表格元素类型 |
|
noexcept |
清空表格中的所有元素
| T | 表格元素类型 |
|
noexcept |
获取表格的列数
| T | 表格元素类型 |
|
noexcept |
返回指向表格最后一个元素的常量反向迭代器
| T | 表格元素类型 |
|
noexcept |
返回指向表格第一个元素前一个位置的常量反向迭代器
| T | 表格元素类型 |
|
noexcept |
返回指向底层数组的指针(常量版本)
| T | 表格元素类型 |
|
noexcept |
返回指向底层数组的指针
| T | 表格元素类型 |
| void DA::da_vector_table< T >::emplace_back | ( | Args &&... | args | ) |
在表格末尾原位构造一个元素
| T | 表格元素类型 |
| Args | 参数类型 |
| args | 构造参数 |
|
noexcept |
检查表格是否为空
| T | 表格元素类型 |
|
noexcept |
返回指向表格尾后位置的常量迭代器
| T | 表格元素类型 |
|
noexcept |
返回指向表格尾后位置的迭代器
| T | 表格元素类型 |
| void DA::da_vector_table< T >::erase_column | ( | std::size_t | pos | ) |
移除指定位置的列(高效版本)
| T | 表格元素类型 |
| pos | 要移除的列位置 |
此版本通过创建新向量来避免多次数据移动,提高大型表格的操作效率。
| void DA::da_vector_table< T >::erase_row | ( | std::size_t | pos | ) |
移除指定位置的行
| T | 表格元素类型 |
| pos | 要移除的行位置 |
| T & DA::da_vector_table< T >::front | ( | ) |
访问表格的第一个元素
| T | 表格元素类型 |
| const T & DA::da_vector_table< T >::front | ( | ) | const |
访问表格的第一个元素(常量版本)
| T | 表格元素类型 |
| std::vector< T > DA::da_vector_table< T >::get_column | ( | std::size_t | col | ) | const |
获取指定列的数据
| T | 表格元素类型 |
| col | 列索引 |
| std::vector< T > DA::da_vector_table< T >::get_row | ( | std::size_t | row | ) | const |
获取指定行的数据
| T | 表格元素类型 |
| row | 行索引 |
| void DA::da_vector_table< T >::insert_column | ( | std::size_t | pos, |
| const std::vector< T > & | col | ||
| ) |
在指定位置插入一列
| T | 表格元素类型 |
| pos | 插入位置 |
| col | 要插入的列 |
| void DA::da_vector_table< T >::insert_column | ( | std::size_t | pos, |
| std::vector< T > && | col | ||
| ) |
在指定位置插入一列(移动语义)
| T | 表格元素类型 |
| pos | 插入位置 |
| col | 要插入的列 |
| void DA::da_vector_table< T >::insert_row | ( | std::size_t | pos, |
| const std::vector< T > & | row | ||
| ) |
在指定位置插入一行
| T | 表格元素类型 |
| pos | 插入位置 |
| row | 要插入的行 |
| void DA::da_vector_table< T >::insert_row | ( | std::size_t | pos, |
| std::vector< T > && | row | ||
| ) |
在指定位置插入一行(移动语义)
| T | 表格元素类型 |
| pos | 插入位置 |
| row | 要插入的行 |
|
noexcept |
返回表格可容纳的最大元素数
| T | 表格元素类型 |
| T & DA::da_vector_table< T >::operator() | ( | std::size_t | row, |
| std::size_t | col | ||
| ) |
访问指定位置的元素(函数调用运算符)
| T | 表格元素类型 |
| row | 行索引 |
| col | 列索引 |
| const T & DA::da_vector_table< T >::operator() | ( | std::size_t | row, |
| std::size_t | col | ||
| ) | const |
访问指定位置的元素(函数调用运算符,常量版本)
| T | 表格元素类型 |
| row | 行索引 |
| col | 列索引 |
| da_vector_table< T > & DA::da_vector_table< T >::operator= | ( | const da_vector_table< T > & | other | ) |
拷贝赋值运算符
| T | 表格元素类型 |
| other | 要拷贝的表格 |
|
noexcept |
移动赋值运算符
| T | 表格元素类型 |
| other | 要移动的表格 |
| void DA::da_vector_table< T >::pop_back | ( | ) |
移除表格的最后一个元素
| T | 表格元素类型 |
| void DA::da_vector_table< T >::push_back | ( | const T & | value | ) |
在表格末尾添加一个元素
| T | 表格元素类型 |
| value | 要添加的元素 |
| void DA::da_vector_table< T >::push_back | ( | T && | value | ) |
在表格末尾添加一个元素(移动语义)
| T | 表格元素类型 |
| value | 要添加的元素 |
|
noexcept |
返回指向表格最后一个元素的常量反向迭代器
| T | 表格元素类型 |
|
noexcept |
返回指向表格最后一个元素的反向迭代器
| T | 表格元素类型 |
|
noexcept |
返回指向表格第一个元素前一个位置的常量反向迭代器
| T | 表格元素类型 |
|
noexcept |
返回指向表格第一个元素前一个位置的反向迭代器
| T | 表格元素类型 |
| void DA::da_vector_table< T >::reserve | ( | std::size_t | new_cap | ) |
预留存储空间
| T | 表格元素类型 |
| new_cap | 新的容量值 |
| void DA::da_vector_table< T >::reshape | ( | std::size_t | rows, |
| std::size_t | cols | ||
| ) |
改变表格形状而不改变数据总量
| T | 表格元素类型 |
| rows | 新的行数 |
| cols | 新的列数 |
| std::invalid_argument | 如果新形状的元素总数与当前不同 |
| void DA::da_vector_table< T >::resize | ( | std::size_t | rows, |
| std::size_t | cols, | ||
| const T & | value = T() |
||
| ) |
调整表格大小
| T | 表格元素类型 |
| rows | 新的行数 |
| cols | 新的列数 |
| value | 新元素的初始值 |
| void DA::da_vector_table< T >::resize | ( | table_index_type | sh, |
| const T & | value = T() |
||
| ) |
使用形状对象调整表格大小
| T | 表格元素类型 |
| sh | 包含新行数和列数的形状对象 |
| value | 新元素的初始值 |
|
noexcept |
获取表格的行数
| T | 表格元素类型 |
| void DA::da_vector_table< T >::set_column | ( | std::size_t | col, |
| const std::vector< T > & | values | ||
| ) |
设置指定列的数据
| T | 表格元素类型 |
| col | 列索引 |
| values | 要设置的值 |
| std::invalid_argument | 如果值数量与行数不匹配 |
| void DA::da_vector_table< T >::set_row | ( | std::size_t | row, |
| const std::vector< T > & | values | ||
| ) |
设置指定行的数据
| T | 表格元素类型 |
| row | 行索引 |
| values | 要设置的值 |
| std::invalid_argument | 如果值数量与列数不匹配 |
|
noexcept |
获取表格的形状(行数和列数)
| T | 表格元素类型 |
| void DA::da_vector_table< T >::shrink_to_fit | ( | ) |
请求移除未使用的容量
| T | 表格元素类型 |
|
noexcept |
返回表格中的元素总数
| T | 表格元素类型 |
|
noexcept |
交换两个表格的内容
| T | 表格元素类型 |
| other | 要交换的另一个表格 |