49 explicit DataFrame(
const std::string& name);
53 const std::string& name()
const {
return name_; }
54 void setName(
const std::string& name) { name_ = name; }
56 size_t rowCount()
const;
57 size_t columnCount()
const {
return columns_.size(); }
58 bool empty()
const {
return columns_.empty(); }
61 std::vector<std::string> columnNames()
const;
66 DataSeries& addColumn(
const std::string& name, EDataType type,
size_t size);
69 DataSeries& addColumn(DataSeries&& series);
73 bool removeColumn(
const std::string& name);
76 bool hasColumn(
const std::string& name)
const;
81 DataSeries& operator[](
const std::string& name);
84 const DataSeries& operator[](
const std::string& name)
const;
87 DataSeries& column(
size_t index);
90 const DataSeries& column(
size_t index)
const;
94 using iterator = std::vector<DataSeries>::iterator;
95 using const_iterator = std::vector<DataSeries>::const_iterator;
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(); }
102 void reserve(
size_t size){columns_.reserve(size);}
107 std::vector<DataSeries> columns_;
108 std::map<std::string, size_t> index_;