#include "anagram.h" #include #include #include namespace anagram { using namespace std; static inline string normalize(const string &str) { string result = str; transform(result.begin(), result.end(), result.begin(), [](char c){return tolower(c);}); sort(result.begin(), result.end()); cout << str << " -> " << result << endl; return result; } anagram::anagram(const string &_key) { cout << "New test, key=" << _key << endl; key = normalize(_key); } StringContainer anagram::matches(const StringContainer &input) const { StringContainer result(input.size()); cout << "Input: {"; for (auto s : input) cout << s << " "; cout << "}" << endl; auto iter = copy_if(input.cbegin(), input.cend(), result.begin(), [=](const string &s){return key == normalize(s);}); cout << "Output: {"; for (auto s : result) cout << s << " "; cout << "}" << endl; result.resize(distance(result.begin(), iter)); return result; } }