cpp-toolbox  0.0.1
A toolbox library for C++
Loading...
Searching...
No Matches
toolbox::io::dataset_t< Derived, DataType > Class Template Reference

数据集基类/Abstract base class for datasets More...

#include <dataset.hpp>

Public Types

using data_type = DataType
 数据类型别名/Type alias for data type
 

Public Member Functions

std::size_t size () const
 获取数据集大小/Get the size of the dataset
 
std::optional< DataType > operator[] (std::size_t index) const
 通过下标访问数据/Access data by index
 
std::optional< DataType > at (std::size_t index) const
 通过下标访问数据/Access data by index
 
std::optional< DataType > get_item (std::size_t index) const
 获取指定索引的数据/Get data at the specified index
 
std::optional< DataType > get_next ()
 获取下一个元素并推进内部索引/Get the next element and advance the internal index
 
std::optional< DataType > peek_next () const
 查看下一个元素但不推进索引/Peek the next element without advancing the index
 
void reset_iterator ()
 重置内部迭代器索引/Reset the internal iterator index
 
std::size_t current_index () const
 获取当前迭代器索引/Get the current iterator index
 
 dataset_t (const dataset_t &)=delete
 禁用拷贝构造/Copy constructor is disabled
 
dataset_toperator= (const dataset_t &)=delete
 禁用拷贝赋值/Copy assignment is disabled
 
 dataset_t (dataset_t &&)=delete
 禁用移动构造/Move constructor is disabled
 
dataset_toperator= (dataset_t &&)=delete
 禁用移动赋值/Move assignment is disabled
 

Protected Member Functions

 dataset_t ()=default
 构造函数/Constructor
 
 ~dataset_t ()=default
 析构函数/Destructor
 

Detailed Description

template<typename Derived, typename DataType>
class toolbox::io::dataset_t< Derived, DataType >

数据集基类/Abstract base class for datasets

Template Parameters
Derived派生类类型/Derived class type
DataType数据类型/Data type
// 示例:自定义一个点云数据集/Example: Custom point cloud dataset
class my_dataset : public dataset_t<my_dataset, int> {
public:
std::size_t size_impl() const { return 100; }
std::optional<int> at_impl(std::size_t idx) const { return idx < 100 ?
std::optional<int>(idx) : std::nullopt; }
};
my_dataset ds;
auto v = ds[5]; // 获取第5个元素/Get the 5th element
auto next = ds.get_next(); // 获取下一个元素/Get next element
ds.reset_iterator(); // 重置迭代器/Reset iterator
数据集基类/Abstract base class for datasets
Definition dataset.hpp:33

Member Typedef Documentation

◆ data_type

template<typename Derived , typename DataType >
using toolbox::io::dataset_t< Derived, DataType >::data_type = DataType

数据类型别名/Type alias for data type

Constructor & Destructor Documentation

◆ dataset_t() [1/3]

template<typename Derived , typename DataType >
toolbox::io::dataset_t< Derived, DataType >::dataset_t ( )
protecteddefault

构造函数/Constructor

◆ ~dataset_t()

template<typename Derived , typename DataType >
toolbox::io::dataset_t< Derived, DataType >::~dataset_t ( )
protecteddefault

析构函数/Destructor

◆ dataset_t() [2/3]

template<typename Derived , typename DataType >
toolbox::io::dataset_t< Derived, DataType >::dataset_t ( const dataset_t< Derived, DataType > &  )
delete

禁用拷贝构造/Copy constructor is disabled

◆ dataset_t() [3/3]

template<typename Derived , typename DataType >
toolbox::io::dataset_t< Derived, DataType >::dataset_t ( dataset_t< Derived, DataType > &&  )
delete

禁用移动构造/Move constructor is disabled

Member Function Documentation

◆ at()

template<typename Derived , typename DataType >
std::optional< DataType > toolbox::io::dataset_t< Derived, DataType >::at ( std::size_t  index) const
inline

通过下标访问数据/Access data by index

Parameters
index元素索引/Element index
Returns
对应索引的数据(可选)/Data at the given index (optional)
auto item = ds.at(10); // 获取第10个元素/Get the 10th element

◆ current_index()

template<typename Derived , typename DataType >
std::size_t toolbox::io::dataset_t< Derived, DataType >::current_index ( ) const
inline

获取当前迭代器索引/Get the current iterator index

Returns
当前索引/Current index
std::size_t idx = ds.current_index(); // 获取当前索引/Get current index

◆ get_item()

template<typename Derived , typename DataType >
std::optional< DataType > toolbox::io::dataset_t< Derived, DataType >::get_item ( std::size_t  index) const
inline

获取指定索引的数据/Get data at the specified index

Parameters
index元素索引/Element index
Returns
对应索引的数据(可选)/Data at the given index (optional)
auto item = ds.get_item(0); // 获取第0个元素/Get the 0th element

◆ get_next()

template<typename Derived , typename DataType >
std::optional< DataType > toolbox::io::dataset_t< Derived, DataType >::get_next ( )
inline

获取下一个元素并推进内部索引/Get the next element and advance the internal index

Returns
下一个元素(可选)/Next element (optional)
Note
修改为非const方法,因为它改变了对象状态/Changed to non-const because it modifies object state
ds.reset_iterator();
auto first = ds.get_next(); // 获取第一个元素/Get the first element
auto second = ds.get_next(); // 获取第二个元素/Get the second element

◆ operator=() [1/2]

template<typename Derived , typename DataType >
dataset_t & toolbox::io::dataset_t< Derived, DataType >::operator= ( const dataset_t< Derived, DataType > &  )
delete

禁用拷贝赋值/Copy assignment is disabled

◆ operator=() [2/2]

template<typename Derived , typename DataType >
dataset_t & toolbox::io::dataset_t< Derived, DataType >::operator= ( dataset_t< Derived, DataType > &&  )
delete

禁用移动赋值/Move assignment is disabled

◆ operator[]()

template<typename Derived , typename DataType >
std::optional< DataType > toolbox::io::dataset_t< Derived, DataType >::operator[] ( std::size_t  index) const
inline

通过下标访问数据/Access data by index

Parameters
index元素索引/Element index
Returns
对应索引的数据(可选)/Data at the given index (optional)
auto item = ds[3]; // 获取第3个元素/Get the 3rd element

◆ peek_next()

template<typename Derived , typename DataType >
std::optional< DataType > toolbox::io::dataset_t< Derived, DataType >::peek_next ( ) const
inline

查看下一个元素但不推进索引/Peek the next element without advancing the index

Returns
下一个元素(可选)/Next element (optional)
ds.reset_iterator();
auto peeked = ds.peek_next(); // 查看下一个元素/Peek next element

◆ reset_iterator()

template<typename Derived , typename DataType >
void toolbox::io::dataset_t< Derived, DataType >::reset_iterator ( )
inline

重置内部迭代器索引/Reset the internal iterator index

ds.reset_iterator(); // 重置到第一个元素/Reset to the first element

◆ size()

template<typename Derived , typename DataType >
std::size_t toolbox::io::dataset_t< Derived, DataType >::size ( ) const
inline

获取数据集大小/Get the size of the dataset

Returns
数据集中的元素数量/Number of elements in the dataset
my_dataset ds;
std::size_t n = ds.size(); // 获取数据集大小/Get dataset size

The documentation for this class was generated from the following file: