|
DAWorkbench 0.0.1
DAWorkbench API
|
支持稀疏存储和各种算法的表格类 更多...
#include <DATable.hpp>
Public 类型 | |
| using | Type = T |
| 值类型 | |
| using | IndexType = int |
| 索引类型 | |
| using | IndexPair = std::pair< IndexType, IndexType > |
| 索引对类型 | |
| using | TableType = da_hash_table< T, IndexType > |
| 内部表格类型 | |
| using | TableIterator = typename TableType::iterator |
| 表格迭代器 | |
| using | TableConstIterator = typename TableType::const_iterator |
| 表格常量迭代器 | |
| using | value_type = typename TableType::value_type |
| 兼容std的值类型 | |
| using | PredFun = std::function< bool(const value_type &) > |
| 谓词函数类型 | |
Public 成员函数 | |
| DATable () | |
| 默认构造函数 | |
| DATable (const DATable &other) | |
| 拷贝构造函数 | |
| DATable (DATable &&other) noexcept | |
| 移动构造函数 | |
| DATable< T > & | operator= (const DATable &other) |
| 拷贝赋值运算符 | |
| DATable< T > & | operator= (DATable &&other) noexcept |
| 移动赋值运算符 | |
| bool | contain (int r, int c) const |
| 检查单元格是否有内容 | |
| bool | contain (IndexPair i) const |
| 检查单元格是否有内容(使用索引对) | |
| const T & | at (int r, int c) const |
| 带边界检查的元素访问 | |
| T & | at (int r, int c) |
| 带边界检查的元素访问 | |
| const T & | at (const IndexPair &i) const |
| 带边界检查的元素访问(使用索引对) | |
| T & | at (const IndexPair &i) |
| 带边界检查的元素访问(使用索引对) | |
| T | cell (int r, int c) const |
| 安全的元素访问,返回默认值如果不存在 | |
| T | cell (const IndexPair &i) const |
| 安全的元素访问,返回默认值如果不存在(使用索引对) | |
| T & | operator[] (const IndexPair &i) |
| 下标运算符访问元素 | |
| T & | operator() (IndexType r, IndexType c) |
| 函数调用运算符访问元素 | |
| const T | operator() (IndexType r, IndexType c) const |
| 函数调用运算符访问元素(常量版本) | |
| void | set (const IndexPair &k, const T &v) |
| 设置单元格值 | |
| void | set (IndexType row, IndexType col, const T &v) |
| 设置单元格值 | |
| int | rowCount () const |
| 获取表格行数 | |
| int | columnCount () const |
| 获取表格列数 | |
| IndexPair | shape () const |
| 获取表格形状 | |
| std::size_t | size () const |
| 获取表格元素数量 | |
| bool | empty () const |
| 检查表格是否为空 | |
| void | recalcShape () |
| 重新计算表格形状 | |
| bool | removeCell (int r, int c) |
| 移除指定单元格 | |
| bool | removeCell (const IndexPair &i) |
| 移除指定单元格(使用索引对) | |
| void | clear () |
| 清空表格 | |
| std::size_t | erase_if (PredFun pred) |
| 按条件删除元素 | |
| void | dropColumn (IndexType col) |
| 移除指定列 | |
| TableConstIterator | find (const IndexPair &i) const |
| 查找元素 | |
| TableConstIterator | find (int r, int c) const |
| 查找元素 | |
| TableIterator | find (const IndexPair &i) |
| 查找元素 | |
| TableIterator | find (int r, int c) |
| 查找元素 | |
| TableConstIterator | end () const |
| 返回末尾迭代器 | |
| TableIterator | end () |
| 返回末尾迭代器 | |
| TableConstIterator | begin () const |
| 返回起始迭代器 | |
| TableIterator | begin () |
| 返回起始迭代器 | |
| template<typename OtherType > | |
| DATable< OtherType > | transfered (std::function< OtherType(const T &v) > trFun) const |
| 转换表格数据类型 | |
| void | transferColumn (IndexType col, std::function< bool(const T &v) > trFun) const |
| 遍历指定列 | |
| template<typename OtherType > | |
| DATable< T > & | operator= (const da_vector_table< OtherType > &other) |
| 从 da_vector_table 赋值 | |
| TableType & | rawData () |
| 获取内部表格数据 | |
| const TableType & | rawData () const |
| 获取内部表格数据(常量版本) | |
| IndexPair | getShape () const |
| 获取表格形状 | |
支持稀疏存储和各种算法的表格类
此类提供了一个稀疏表格数据结构,内部使用 da_hash_table 存储数据, 同时维护表格的形状信息,提供方便的表格操作接口。
| T | 存储的值类型 |
| DA::DATable< T >::DATable | ( | ) |
| DA::DATable< T >::DATable | ( | const DATable< T > & | other | ) |
拷贝构造函数
| T | 存储的值类型 |
| other | 要拷贝的表格 |
|
noexcept |
移动构造函数
| T | 存储的值类型 |
| other | 要移动的表格 |
| T & DA::DATable< T >::at | ( | const IndexPair & | i | ) |
带边界检查的元素访问(使用索引对)
| T | 存储的值类型 |
| i | 索引对 |
| std::out_of_range | 如果元素不存在 |
| const T & DA::DATable< T >::at | ( | const IndexPair & | i | ) | const |
带边界检查的元素访问(使用索引对)
| T | 存储的值类型 |
| i | 索引对 |
| std::out_of_range | 如果元素不存在 |
| T & DA::DATable< T >::at | ( | int | r, |
| int | c | ||
| ) |
带边界检查的元素访问
| T | 存储的值类型 |
| r | 行索引 |
| c | 列索引 |
| std::out_of_range | 如果元素不存在 |
| const T & DA::DATable< T >::at | ( | int | r, |
| int | c | ||
| ) | const |
带边界检查的元素访问
| T | 存储的值类型 |
| r | 行索引 |
| c | 列索引 |
| std::out_of_range | 如果元素不存在 |
| DATable< T >::TableIterator DA::DATable< T >::begin | ( | ) |
| DATable< T >::TableConstIterator DA::DATable< T >::begin | ( | ) | const |
返回起始迭代器
| T | 存储的值类型 |
| T DA::DATable< T >::cell | ( | const IndexPair & | i | ) | const |
安全的元素访问,返回默认值如果不存在(使用索引对)
| T | 存储的值类型 |
| i | 索引对 |
| T DA::DATable< T >::cell | ( | int | r, |
| int | c | ||
| ) | const |
安全的元素访问,返回默认值如果不存在
| T | 存储的值类型 |
| r | 行索引 |
| c | 列索引 |
| void DA::DATable< T >::clear | ( | ) |
| int DA::DATable< T >::columnCount | ( | ) | const |
| bool DA::DATable< T >::contain | ( | IndexPair | i | ) | const |
检查单元格是否有内容(使用索引对)
| T | 存储的值类型 |
| i | 索引对 |
| bool DA::DATable< T >::contain | ( | int | r, |
| int | c | ||
| ) | const |
检查单元格是否有内容
| T | 存储的值类型 |
| r | 行索引 |
| c | 列索引 |
| void DA::DATable< T >::dropColumn | ( | IndexType | col | ) |
移除指定列
| T | 存储的值类型 |
| col | 要移除的列索引 |
| bool DA::DATable< T >::empty | ( | ) | const |
检查表格是否为空
| T | 存储的值类型 |
| DATable< T >::TableIterator DA::DATable< T >::end | ( | ) |
返回末尾迭代器
| T | 存储的值类型 |
| DATable< T >::TableConstIterator DA::DATable< T >::end | ( | ) | const |
返回末尾迭代器
| T | 存储的值类型 |
| std::size_t DA::DATable< T >::erase_if | ( | PredFun | pred | ) |
按条件删除元素
| T | 存储的值类型 |
| pred | 谓词函数,返回true表示删除元素 |
| DATable< T >::TableIterator DA::DATable< T >::find | ( | const IndexPair & | i | ) |
查找元素
| T | 存储的值类型 |
| i | 索引对 |
| DATable< T >::TableConstIterator DA::DATable< T >::find | ( | const IndexPair & | i | ) | const |
查找元素
| T | 存储的值类型 |
| i | 索引对 |
| DATable< T >::TableIterator DA::DATable< T >::find | ( | int | r, |
| int | c | ||
| ) |
查找元素
| T | 存储的值类型 |
| r | 行索引 |
| c | 列索引 |
| DATable< T >::TableConstIterator DA::DATable< T >::find | ( | int | r, |
| int | c | ||
| ) | const |
查找元素
| T | 存储的值类型 |
| r | 行索引 |
| c | 列索引 |
| DATable< T >::IndexPair DA::DATable< T >::getShape | ( | ) | const |
获取表格形状
| T | 存储的值类型 |
| T & DA::DATable< T >::operator() | ( | IndexType | r, |
| IndexType | c | ||
| ) |
函数调用运算符访问元素
| T | 存储的值类型 |
| r | 行索引 |
| c | 列索引 |
| const T DA::DATable< T >::operator() | ( | IndexType | r, |
| IndexType | c | ||
| ) | const |
函数调用运算符访问元素(常量版本)
| T | 存储的值类型 |
| r | 行索引 |
| c | 列索引 |
| DATable< T > & DA::DATable< T >::operator= | ( | const da_vector_table< OtherType > & | other | ) |
从 da_vector_table 赋值
| T | 存储的值类型 |
| OtherType | 源值类型 |
| other | 源表格 |
| DATable< T > & DA::DATable< T >::operator= | ( | const DATable< T > & | other | ) |
拷贝赋值运算符
| T | 存储的值类型 |
| other | 要拷贝的表格 |
|
noexcept |
移动赋值运算符
| T | 存储的值类型 |
| other | 要移动的表格 |
| T & DA::DATable< T >::operator[] | ( | const IndexPair & | i | ) |
下标运算符访问元素
| T | 存储的值类型 |
| i | 索引对 |
| DATable< T >::TableType & DA::DATable< T >::rawData | ( | ) |
获取内部表格数据
| T | 存储的值类型 |
| const DATable< T >::TableType & DA::DATable< T >::rawData | ( | ) | const |
获取内部表格数据(常量版本)
| T | 存储的值类型 |
| void DA::DATable< T >::recalcShape | ( | ) |
| bool DA::DATable< T >::removeCell | ( | const IndexPair & | i | ) |
移除指定单元格(使用索引对)
| T | 存储的值类型 |
| i | 索引对 |
| bool DA::DATable< T >::removeCell | ( | int | r, |
| int | c | ||
| ) |
移除指定单元格
| T | 存储的值类型 |
| r | 行索引 |
| c | 列索引 |
| int DA::DATable< T >::rowCount | ( | ) | const |
| void DA::DATable< T >::set | ( | const IndexPair & | k, |
| const T & | v | ||
| ) |
| void DA::DATable< T >::set | ( | IndexType | row, |
| IndexType | col, | ||
| const T & | v | ||
| ) |
| DATable< T >::IndexPair DA::DATable< T >::shape | ( | ) | const |
获取表格形状
| T | 存储的值类型 |
| std::size_t DA::DATable< T >::size | ( | ) | const |
获取表格元素数量
| T | 存储的值类型 |
| void DA::DATable< T >::transferColumn | ( | IndexType | col, |
| std::function< bool(const T &v) > | trFun | ||
| ) | const |
遍历指定列
| T | 存储的值类型 |
| col | 列索引 |
| trFun | 遍历函数,如果返回false则停止遍历 |
| DATable< OtherType > DA::DATable< T >::transfered | ( | std::function< OtherType(const T &v) > | trFun | ) | const |
转换表格数据类型
| T | 存储的值类型 |
| OtherType | 目标值类型 |
| trFun | 转换函数 |