1.main.cpp
#include <iostream>
#include "othertrie.hpp"
using namespace mytrie;
int main(int argc, char *argv[])
{
std::string text = "dfjosjdfoiasjfoiasjdofijasiodfjsdoidfjasodifjoasidj"\
"fjoisjdfoijsdofijasoidfjoiasffidsjdfoiasjdfohnasoguhw9jqijrojiowdjimeoiqjwoeij"\
"osdjfoisjfoijsdifjijijweiiejiojtgijerogjonvkoijqowijeqijofjeorijfoiewrjfo"\
"jofijaosdifjo;jfoiofidfdewroqiuuqoiurijhdfdkvlknvjajffopq[roeoirjoiwejrowe"\
"joisjdfoisjdfoijsodfijosffidijoweijoiruoqiueriuqtihodfhgodfjkskdkljsldjnxsdkfjlk"\
"soidfjoijdfoijroeiwjfoiiijqijeoipeirpqet[ofjoeijfoijeoiiwejfoijweoifjwoejfoi";
std::string key1 = "fjoi";
std::string key2 = "sffid";
std::string key3 = "fidfd";
std::string key4 = "jdo";
std::string key5 = "dfd";
std::string key6 = "ssdfsf";
std::string key7 = "---------------------";
basic_trie<char> *finder = new basic_trie<char>;
finder->insert(key1);
finder->insert(key2);
finder->insert(key3);
finder->insert(key4);
finder->insert(key5);
finder->insert(key6);
finder->insert(key7);
finder->settingfailure();
std::vector<result<char>> res = finder->search(text);
for (auto i = 0; i < res.size(); ++i)
{
std::cout << res[i].sentence << '\n';
std::cout << "start==" << res[i].start << ", ";
std::cout << "fin==" << res[i].fin << '\n';
std::cout << "=========================" << '\n';
}
return 0;
}
2.othertrie.cpp
#ifndef OTHERTRIE_HPP
#define OTHERTRIE_HPP
#include <typeinfo>
#include <memory>
#include <string>
#include <map></