From c9a50d540d01645f2bd27f3abf60341e287d7dca Mon Sep 17 00:00:00 2001 From: David Allemang Date: Thu, 12 Sep 2019 20:31:16 -0400 Subject: [PATCH] created table class --- cosets/src/tc.cpp | 65 +++++++++++++++++++++++++++++++---------------- 1 file changed, 43 insertions(+), 22 deletions(-) diff --git a/cosets/src/tc.cpp b/cosets/src/tc.cpp index fa2b5b7..63d0262 100644 --- a/cosets/src/tc.cpp +++ b/cosets/src/tc.cpp @@ -1,6 +1,11 @@ #include #include +struct Row; + +template +struct Table; + struct Row { std::vector::const_iterator l; std::vector::const_iterator r; @@ -16,6 +21,16 @@ struct Row { } }; +template +struct Table { + std::vector> fwd; + std::vector> rev; + + void add_row() { + fwd.push_back(std::vector(N)); + } +}; + std::ostream &operator<<(std::ostream &out, const Row &row) { out << "[ " << row.from << " | "; auto it = row.l; @@ -27,6 +42,28 @@ std::ostream &operator<<(std::ostream &out, const Row &row) { return out; } +template +std::ostream &operator<<(std::ostream &out, const Table &table) { + out << "["; + for (int j = 0; j < table.fwd.size(); ++j) { + auto arr = table.fwd[j]; + out << "["; + for (int i = 0; i < N; ++i) { + out << arr[i]; + + if (i < N - 1) + out << " "; + } + + out << "]"; + if (j < table.fwd.size() - 1) + out << "\n "; + } + out << "]\n"; + + return out; +} + int main(int argc, char *argv[]) { int gens = 2; std::vector> ids{ @@ -35,28 +72,12 @@ int main(int argc, char *argv[]) { {0, 1, 0, 1, 0, 1} }; - std::vector &id = ids[2]; - Row row(id, 8, 9); - - std::cout << row << std::endl; - - row.l++; - row.from = 6; - - std::cout << row << std::endl; - -// std::vector> vecs{ -// {'a', 'o', 'e', 'u'}, -// {'p'}, -// {'q', 'j', 'k'}, -// }; -// -// for (const auto& vec : vecs) { -// for (const auto& ch : vec) { -// std::cout << ch; -// } -// std::cout << std::endl; -// } + Table<3> table; + table.add_row(); + table.add_row(); + table.add_row(); + table.add_row(); + std::cout << table; return 0; } \ No newline at end of file