DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DAAutoincrementSeries.hpp
1#ifndef DAAUTOINCREMENTSERIES_H
2#define DAAUTOINCREMENTSERIES_H
3#include <algorithm>
4namespace DA
5{
6
22template< typename T >
24{
25public:
26 typedef T Type;
27
28public:
30 DAAutoincrementSeries(T baseValue_, T stepValue_);
31 //基准
32 T getBaseValue() const;
33 //步长值
34 T getStepValue() const;
35 //设置基准值
36 void setBaseValue(T baseValue_);
37 //设置基准值
38 void setStepValue(T stepValue_);
39 //生成序列
40 template< typename IteBegin, typename IteEnd >
41 void generate(IteBegin begin_, IteEnd end_);
42 //获取值
43 T at(std::size_t index) const;
44 //支持[]取值
45 T operator[](std::size_t index) const;
46
47private:
48 T mBase;
49 T mStep;
50};
51
55template< typename T >
57{
58 mBase = 0;
59 mStep = 1;
60}
61
67template< typename T >
69{
70 mBase = baseValue_;
71 mStep = stepValue_;
72}
73
77template< typename T >
79{
80 return mBase;
81}
82
86template< typename T >
88{
89 return mStep;
90}
91
95template< typename T >
97{
98 mBase = baseValue_;
99}
100
104template< typename T >
106{
107 mStep = stepValue_;
108}
109
115template< typename T >
116T DAAutoincrementSeries< T >::at(std::size_t index) const
117{
118 return (mBase + index * mStep);
119}
120
126template< typename T >
128{
129 return (mBase + index * mStep);
130}
131
144template< typename T >
145template< typename IteBegin, typename IteEnd >
146void DAAutoincrementSeries< T >::generate(IteBegin begin_, IteEnd end_)
147{
148 std::size_t n = 0;
149 while (begin_ < end_) {
150 *begin_ = at(n);
151 ++n;
152 ++begin_;
153 }
154}
155
156} // end DA
157#endif // DAAUTOINCREMENTSERIES_H
这是描述等步长自增序列的类,包含了基础值和步长,可以把它当做一个数组调用
Definition DAAutoincrementSeries.hpp:24
T getStepValue() const
步长
Definition DAAutoincrementSeries.hpp:87
void setBaseValue(T baseValue_)
设置基准
Definition DAAutoincrementSeries.hpp:96
T at(std::size_t index) const
获取第index个自增值
Definition DAAutoincrementSeries.hpp:116
void generate(IteBegin begin_, IteEnd end_)
生成序列
Definition DAAutoincrementSeries.hpp:146
DAAutoincrementSeries()
默认构造是从0开始,1步长的一个自增序列
Definition DAAutoincrementSeries.hpp:56
void setStepValue(T stepValue_)
设置步长
Definition DAAutoincrementSeries.hpp:105
T getBaseValue() const
基准
Definition DAAutoincrementSeries.hpp:78
T operator[](std::size_t index) const
支持[]取值
Definition DAAutoincrementSeries.hpp:127
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44