From 017ad496cb1661127166e07b9dcc382587afcdb9 Mon Sep 17 00:00:00 2001 From: Tamas Bunth <tamas.bunth@collabora.co.uk> Date: Mon, 19 Mar 2018 12:39:46 +0100 Subject: [PATCH] print result elements in order --- processor.cxx | 13 ++++++++++--- processor.hxx | 1 + utils.hxx | 1 + 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/processor.cxx b/processor.cxx index 5f81d59..5c9770e 100644 --- a/processor.cxx +++ b/processor.cxx @@ -19,6 +19,12 @@ void Processor::process(std::list<Element> list) if(list.size() == 0) { rMatrix_.print(); + std::cout << "Elemek: " << std::endl; + for(const auto& elem : result) + { + elem.print(); + } + std::cout << "----------------------" << std::endl; ready_ = true; return; } @@ -29,20 +35,21 @@ void Processor::process(std::list<Element> list) auto it = list.begin(); while( hasMoreState || it!= list.end() ) { - Position pos{0,0}; + Position pos; success = rMatrix_.putFirst(*it, pos); if(success) { // rMatrix_.print(); + result.push_back(*it); + // copy everything except current std::list<Element> copy; std::copy(list.begin(), it, std::back_inserter(copy)); copy.insert(copy.end(), std::next(it), list.end()); process(std::move(copy)); - if(ready_) - it->print(); rMatrix_.free(*it, pos); + result.pop_back(); } hasMoreState = it->nextState(); diff --git a/processor.hxx b/processor.hxx index 8005531..8901bf1 100644 --- a/processor.hxx +++ b/processor.hxx @@ -12,6 +12,7 @@ class Processor private: bool ready_ = false; Matrix& rMatrix_; + std::list<Element> result; public: Processor(Matrix& matrix); diff --git a/utils.hxx b/utils.hxx index 28e2620..f6fe8a6 100644 --- a/utils.hxx +++ b/utils.hxx @@ -18,6 +18,7 @@ enum class Direction struct Position { std::size_t x, y; + Position() = default; Position(std::size_t x, std::size_t y) :x(x), y(y) {} }; -- GitLab