int __attribute__((weak)) main() { std::cout<<"\r\n--------start of ACAutomation demo--------\r\n"; ACAutomation ac; for(int i=0;i<5;i++){ ac.insert((uint8_t*)pattern[i],strlen(pattern[i]),i); } ac.build(); ac.search(data,sizeof(data)); std::cout<<"\r\n--------end of program---------\r\n"; }
int main(int argc, char **argv) { std::map<char, char*> g_map; for (char i = 'a'; i < 'z' + 1; ++ i) { g_map[i] = new char; *(g_map[i]) = i; } //std::tr1::hash<char*> ptr_hash; ACAutomation<char> acm; std::string a = "abcd"; std::string b = "abce"; std::string d = "bcd"; std::string needle = "abcd"; std::vector<char *> pa, pb, pd, pneedle; for(size_t i = 0; i < a.size(); ++ i) { char c = a[i]; pa.push_back(g_map[c]); } for(size_t i = 0; i < b.size(); ++ i) { char c = b[i]; pb.push_back(g_map[c]); } for(size_t i = 0; i < d.size(); ++ i) { char c = d[i]; pd.push_back(g_map[c]); } for(size_t i = 0; i < needle.size(); ++ i) { char c = needle[i]; pneedle.push_back(g_map[c]); } acm.add(&pa); acm.add(&pb); acm.add(&pd); acm.build(); std::vector< const std::vector<char *> *> match_patterns; int32_t ret = acm.search(&match_patterns, &pneedle); std::cout << ret << std::endl; for (std::vector<const std::vector<char*>* >::const_iterator it = match_patterns.begin(); it != match_patterns.end(); ++ it) { const std::vector<char *> *pattern = *it; for (std::vector<char*>::const_iterator subit = pattern->begin(); subit != pattern->end(); ++ subit) { std::cout << **subit; } std::cout << std::endl; } }
int main(){ ACAutomation ac; ac.reset(); string patt[] = { "is", "sip", "is", "sis", "mississipp" }; int n = 5; for(int i=0; i<n; ++i) ac.insert((char*)&patt[i][0]); ac.construct(); cout<<ac.query("mississippi")<<endl; return 0; }
int main(){ ACAutomation ac; string str=""; while(true){ cin>>str; ac.insert(str); if(str=="end") break; } ac.buildACAutomation(); cin>>str; cout<<str<<endl; cout<<ac.search(str); return 0; }