🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
DataFrame.hpp
浏览该文件的文档.
1
21
22#pragma once
23
24#include "AstGlobal.h"
25#include "AstReport/AstReportGlobal.hpp"
26#include "DataSeries.hpp"
27
28#include <string>
29#include <vector>
30#include <map>
31#include <stdexcept>
32
33AST_NAMESPACE_BEGIN
34
40class AST_REPORT_API DataFrame
41{
42public:
43 // ---- 构造 ----
44
47
49 explicit DataFrame(const std::string& name);
50
51 // ---- 基本信息 ----
52
53 const std::string& name() const { return name_; }
54 void setName(const std::string& name) { name_ = name; }
55
56 size_t rowCount() const;
57 size_t columnCount() const { return columns_.size(); }
58 bool empty() const { return columns_.empty(); }
59
61 std::vector<std::string> columnNames() const;
62
63 // ---- 列管理 ----
64
66 DataSeries& addColumn(const std::string& name, EDataType type, size_t size);
67
69 DataSeries& addColumn(DataSeries&& series);
70
73 bool removeColumn(const std::string& name);
74
76 bool hasColumn(const std::string& name) const;
77
78 // ---- 列访问 ----
79
81 DataSeries& operator[](const std::string& name);
82
84 const DataSeries& operator[](const std::string& name) const;
85
87 DataSeries& column(size_t index);
88
90 const DataSeries& column(size_t index) const;
91
92 // ---- 迭代器 ----
93
94 using iterator = std::vector<DataSeries>::iterator;
95 using const_iterator = std::vector<DataSeries>::const_iterator;
96
97 iterator begin() { return columns_.begin(); }
98 iterator end() { return columns_.end(); }
99 const_iterator begin() const { return columns_.begin(); }
100 const_iterator end() const { return columns_.end(); }
101
102 void reserve(size_t size){columns_.reserve(size);}
103private:
104 void rebuildIndex();
105
106 std::string name_;
107 std::vector<DataSeries> columns_;
108 std::map<std::string, size_t> index_;
109};
110
113AST_NAMESPACE_END
数据列 — 类型擦除的一维数组
定义 DataFrame.hpp:41
DataFrame()
默认构造(空表)