Re:Simple Trie Implementation in C++11
by bhaavan on Sunday July 21, 2019 @03:23PM
(#20493150)
I couldn't come up with such a concise and succinct implementation even if I tried.
[ Parent
| on HN ]
I tried giving this a run from CLion and it crashes if I search first, see
#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;
}My apologies. I updated the post! Now it works just fine!
There's still an issue if you insert something you've searched for first, e.g.:
trie<char16_t> trie;
trie.insert(u"a");
trie.search(u"ab");
trie.insert(u"ab");https://github.com/xorz57/xorz57.netlify.com/commit/48d1c580...
My bad! I fixed it!