25#include "AstUtil/Math.hpp"
71 using iterator_category = std::input_iterator_tag;
73 using difference_type = ptrdiff_t;
79 : range_(range), idx_(idx) {}
84 return (idx_ == range_->n_ - 1)
86 : range_->start_ + range_->step_ * idx_;
89 iterator& operator++() { ++idx_;
return *
this; }
90 iterator operator++(
int) {
auto tmp = *
this; ++*
this;
return tmp; }
92 bool operator==(
const iterator& other)
const {
return idx_ == other.idx_; }
93 bool operator!=(
const iterator& other)
const {
return !(*
this == other); }
96 const TimePointRange* range_ =
nullptr;
100 iterator begin()
const {
return iterator(
this, 0); }
101 iterator end()
const {
return iterator(
this, n_); }
102 size_t size()
const {
return n_; }
109 return (i == n_ - 1) ? stop_ : start_ + step_ * i;
112 const TimePoint& start()
const {
return start_;}
113 const TimePoint& stop()
const{
return stop_;}
114 double step()
const {
return step_;}
reference operator*() const
解引用:除末点按 step 步进,末点返回 stop_
定义 TimePointRange.hpp:82
按步长采样的时间点范围(惰性可迭代)
定义 TimePointRange.hpp:43
TimePointRange(const TimePoint &start, const TimePoint &stop, double step)
构造时间点采样范围
定义 TimePointRange.hpp:61
TimePointRange(const TimePoint &start, const TimePoint &stop, double step, size_t n)
构造时间点采样范围
定义 TimePointRange.hpp:50
TimePoint operator[](size_t i) const
下标访问:返回第 i 个采样时间点(末点返回 stop_)
定义 TimePointRange.hpp:107
绝对时间点
定义 TimePoint.hpp:108
A_ALWAYS_INLINE size_t aDiscretizedCount(double span, double step)
计算闭区间 [0, span] 按 step 步长采样(含两端点)的采样点数
定义 Math.hpp:107