I couldn't come up with such a concise and succinct implementation even if I tried.
#include "trie.hpp" #include <iostream>
int main() { trie<char16_t> trie;
// Greek
std::cout << trie.search(u"υπολογιστής") << std::endl;
std::cout << trie.search(u"υπολογιστης") << std::endl;
// English
std::cout << trie.search(u"computer") << std::endl;
std::cout << trie.search(u"compute") << std::endl;
// Greek
trie.insert(u"υπολογιστής"); //crash
// English
trie.insert(u"computer");
// Greek
std::cout << trie.search(u"υπολογιστής") << std::endl;
std::cout << trie.search(u"υπολογιστης") << std::endl;
// English
std::cout << trie.search(u"computer") << std::endl;
std::cout << trie.search(u"compute") << std::endl;
return 0;
} trie<char16_t> trie;
trie.insert(u"a");
trie.search(u"ab");
trie.insert(u"ab");My bad! I fixed it!