Hikyuu
StockMapIterator.h
浏览该文件的文档.
1 /*
2  * StockMapIterator.h
3  *
4  * Created on: 2015年2月8日
5  * Author: fasiondog
6  */
7 
8 #ifndef STOCKMAPITERATOR_H_
9 #define STOCKMAPITERATOR_H_
10 
11 #include <iterator>
12 #include "Stock.h"
13 
14 namespace hku {
15 
17 public:
18  typedef unordered_map<string, Stock> stock_map_t;
19  typedef Stock value_type;
20  typedef Stock* pointer;
21  typedef const Stock& reference;
22  //typedef stock_map_t::const_iterator::distance_type distance_type;
23  typedef stock_map_t::const_iterator::difference_type difference_type;
24  typedef std::input_iterator_tag iterator_category;
25  /*struct iterator {
26  typedef Stock value_type;
27  typedef Stock* pointer;
28  typedef const Stock& reference;
29  typedef stock_map_t::const_iterator::distance_type distance_type;
30  typedef stock_map_t::const_iterator::difference_type difference_type;
31  typedef std::input_iterator_tag iterator_category;
32  };*/
33 
35  StockMapIterator(const stock_map_t::const_iterator& iter) : m_iter(iter) {}
36  StockMapIterator(const StockMapIterator& iter) : m_iter(iter.m_iter) {}
37 
39  ++m_iter;
40  return *this;
41  }
42 
44  auto old_iter = m_iter;
45  ++m_iter;
46  return StockMapIterator(old_iter);
47  }
48 
49  bool operator==(const StockMapIterator& iter) const {
50  return m_iter == iter.m_iter;
51  }
52 
53  bool operator!=(const StockMapIterator& iter) const {
54  return m_iter != iter.m_iter;
55  }
56 
57  const Stock& operator*() const {
58  return m_iter->second;
59  }
60 
61  const Stock* const operator->() const {
62  return &(m_iter->second);
63  }
64 
65 private:
66  stock_map_t::const_iterator m_iter;
67 };
68 
69 } /* namespace hku */
70 
71 #endif /* STOCKMAPITERATOR_H_ */
stock_map_t::const_iterator::difference_type difference_type
Definition: StockMapIterator.h:23
StockMapIterator & operator++()
Definition: StockMapIterator.h:38
const StockMapIterator operator++(int)
Definition: StockMapIterator.h:43
Stock基类,Application中一般使用StockPtr进行操作
Definition: Stock.h:27
std::input_iterator_tag iterator_category
Definition: StockMapIterator.h:24
const Stock & operator*() const
Definition: StockMapIterator.h:57
bool operator==(const StockMapIterator &iter) const
Definition: StockMapIterator.h:49
Definition: StockMapIterator.h:16
unordered_map< string, Stock > stock_map_t
Definition: StockMapIterator.h:18
StockMapIterator()
Definition: StockMapIterator.h:34
const Stock & reference
Definition: StockMapIterator.h:21
Stock value_type
Definition: StockMapIterator.h:19
const Stock *const operator->() const
Definition: StockMapIterator.h:61
Stock * pointer
Definition: StockMapIterator.h:20
Hikyuu核心命名空间,包含股票数据的管理、指标实现、交易系统框架等
Definition: Block.cpp:11
StockMapIterator(const stock_map_t::const_iterator &iter)
Definition: StockMapIterator.h:35
StockMapIterator(const StockMapIterator &iter)
Definition: StockMapIterator.h:36
bool operator!=(const StockMapIterator &iter) const
Definition: StockMapIterator.h:53