12 template<
class CONTAINER>
17 const CONTAINER *_data =
nullptr;
20 std::set<size_t> _indexlist;
27 inline View(
const CONTAINER &input)
36 , _indexlist{ v._indexlist } {}
45 std::swap(_data, v._data);
46 std::swap(_indexlist, v._indexlist);
58 _indexlist = v._indexlist;
70 std::swap(_data, v._data);
71 std::swap(_indexlist, v._indexlist);
82 inline bool empty()
const {
return _indexlist.empty(); }
88 inline bool is_valid()
const {
return _data !=
nullptr; }
94 inline void add(
size_t idx) { _indexlist.insert(idx); }
101 void add(
const T &idxlst) {
102 _indexlist.insert(idxlst.begin(), idxlst.end());
111 for (
const auto idx : _indexlist) {
112 const auto &crow = _data->row(idx);
125 for (
const auto idx : _indexlist) {
126 const auto crow = fn(_data->row(idx));
139 typename CONTAINER::Column clmn(_indexlist.size());
140 auto clmnitr = clmn.begin();
141 for (
const auto &idx : _indexlist) {
144 *clmnitr = _data->row(idx)[cidx];
void add(size_t idx)
add addiere Elemente
void save(std::ofstream &ofs, Format fmt, FN fn) const
save Speichere Container auf den die View zeigt
void add(const T &idxlst)
add addiere Elemente über Index-Liste
void save(std::ofstream &ofs, Format fmt) const
save Speichere Container auf den die View zeigt
View(const View &v)
View Kopierkonstruktor.
View(View &&v)
View Move-Konstruktor.
auto & operator=(View &&v)
operator =
The View class Sicht auf Teilmenge eines Containers.
auto & operator=(const View &v)
operator = Zuweisungsoperator
auto column(size_t cidx) const
column Kopie einer Spalte
bool is_valid() const
is_valid
View(const CONTAINER &input)
View Konstruktor.