diff --git a/alib2data/src/string/CyclicString.cpp b/alib2data/src/string/CyclicString.cpp index ad66f79f17d411dbc937f4af5d185813b04126c7..f759d8c76cd58631217b642bf78a8dabd98ca66e 100644 --- a/alib2data/src/string/CyclicString.cpp +++ b/alib2data/src/string/CyclicString.cpp @@ -20,22 +20,12 @@ CyclicString::CyclicString() { } -CyclicString::CyclicString(const std::set<alphabet::Symbol>& alphabet, const std::vector<alphabet::Symbol>& data) { - this->alphabet = alphabet; - setContent(data); -} - -CyclicString::CyclicString(std::set<alphabet::Symbol>&& alphabet, std::vector<alphabet::Symbol>&& data) { +CyclicString::CyclicString(std::set<alphabet::Symbol> alphabet, std::vector<alphabet::Symbol> data) { this->alphabet = std::move(alphabet); setContent(std::move(data)); } -CyclicString::CyclicString(const std::vector<alphabet::Symbol>& data) { - alphabet = std::set<alphabet::Symbol>(data.begin(), data.end()); - setContent(std::move(data)); -} - -CyclicString::CyclicString(std::vector<alphabet::Symbol>&& data) { +CyclicString::CyclicString(std::vector<alphabet::Symbol> data) { alphabet = std::set<alphabet::Symbol>(data.begin(), data.end()); setContent(std::move(data)); } diff --git a/alib2data/src/string/CyclicString.h b/alib2data/src/string/CyclicString.h index e90195188fef9c44833fa63a2c27d71a57d2a908..2bfc309f56c506611b1c1da83baadbfd1758833f 100644 --- a/alib2data/src/string/CyclicString.h +++ b/alib2data/src/string/CyclicString.h @@ -27,10 +27,8 @@ class CyclicString : public std::acceptor<CyclicString, VisitableStringBase, std std::vector<alphabet::Symbol> m_Data; public: explicit CyclicString(); - explicit CyclicString(const std::set<alphabet::Symbol>& alphabet, const std::vector<alphabet::Symbol>& data); - explicit CyclicString(std::set<alphabet::Symbol>&& alphabet, std::vector<alphabet::Symbol>&& data); - explicit CyclicString(const std::vector<alphabet::Symbol>& data); - explicit CyclicString(std::vector<alphabet::Symbol>&& data); + explicit CyclicString(std::set<alphabet::Symbol> alphabet, std::vector<alphabet::Symbol> data); + explicit CyclicString(std::vector<alphabet::Symbol> data); explicit CyclicString(const std::string& string); explicit CyclicString(const char* string); explicit CyclicString(const Epsilon& epsilon); diff --git a/alib2data/src/string/LinearString.cpp b/alib2data/src/string/LinearString.cpp index 93ee9968ce058f2f85c1372768461e51f7df9349..e718983f5c481237a183eb02153ec076d038f28e 100644 --- a/alib2data/src/string/LinearString.cpp +++ b/alib2data/src/string/LinearString.cpp @@ -20,22 +20,12 @@ LinearString::LinearString() { } -LinearString::LinearString(const std::set<alphabet::Symbol>& alphabet, const std::vector<alphabet::Symbol>& data) { - this->alphabet = alphabet; - setContent(data); -} - -LinearString::LinearString(std::set<alphabet::Symbol>&& alphabet, std::vector<alphabet::Symbol>&& data) { +LinearString::LinearString(std::set<alphabet::Symbol> alphabet, std::vector<alphabet::Symbol> data) { this->alphabet = std::move(alphabet); setContent(std::move(data)); } -LinearString::LinearString(const std::vector<alphabet::Symbol>& data) { - alphabet = std::set<alphabet::Symbol>(data.begin(), data.end()); - m_Data = data; -} - -LinearString::LinearString(std::vector<alphabet::Symbol>&& data) { +LinearString::LinearString(std::vector<alphabet::Symbol> data) { alphabet = std::set<alphabet::Symbol>(data.begin(), data.end()); m_Data = std::move(data); } @@ -69,13 +59,7 @@ bool LinearString::removeSymbolFromAlphabet(const alphabet::Symbol & symbol) { return alphabet.erase(symbol); } -void LinearString::appendSymbol(const alphabet::Symbol& symbol) { - if(alphabet.count(symbol) == 0) - throw exception::AlibException("Input symbol \"" + (std::string) symbol + "\" not in the alphabet."); - m_Data.push_back(symbol); -} - -void LinearString::appendSymbol(alphabet::Symbol&& symbol) { +void LinearString::appendSymbol(alphabet::Symbol symbol) { if(alphabet.count(symbol) == 0) throw exception::AlibException("Input symbol \"" + (std::string) symbol + "\" not in the alphabet."); m_Data.push_back(std::move(symbol)); diff --git a/alib2data/src/string/LinearString.h b/alib2data/src/string/LinearString.h index 67712ca6f8b719808a7fd6ca46a11b46504d3942..6720ba4aa44b30d60c6cd705604de2131b9a0a61 100644 --- a/alib2data/src/string/LinearString.h +++ b/alib2data/src/string/LinearString.h @@ -28,10 +28,8 @@ class LinearString : public std::acceptor<LinearString, VisitableStringBase, std public: explicit LinearString(); - explicit LinearString(const std::set<alphabet::Symbol>& alphabet, const std::vector<alphabet::Symbol>& data); - explicit LinearString(std::set<alphabet::Symbol>&& alphabet, std::vector<alphabet::Symbol>&& data); - explicit LinearString(const std::vector<alphabet::Symbol>& data); - explicit LinearString(std::vector<alphabet::Symbol>&& data); + explicit LinearString(std::set<alphabet::Symbol> alphabet, std::vector<alphabet::Symbol> data); + explicit LinearString(std::vector<alphabet::Symbol> data); explicit LinearString(const std::string& string); explicit LinearString(const char* string); explicit LinearString(const Epsilon& epsilon); @@ -44,9 +42,7 @@ public: /** * @param element to append */ - void appendSymbol(const alphabet::Symbol& symbol); - - void appendSymbol(alphabet::Symbol&& symbol); + void appendSymbol(alphabet::Symbol symbol); /** * @return List of symbols forming string (const version).