remove trie.find(xx,xx, vector)

This commit is contained in:
wyy 2014-04-08 19:51:49 +08:00
parent f254691e53
commit bfbd63f3e8
3 changed files with 4 additions and 25 deletions

View File

@ -48,7 +48,7 @@ namespace CppJieba
}
//resut of searching in trie tree
vector<pair<size_t, const TrieNodeInfo*> > tRes;
DagType tRes;
//max index of res's words
int maxIdx = 0;
@ -61,9 +61,10 @@ namespace CppJieba
for (Unicode::const_iterator uItr = begin; uItr != end; uItr++)
{
//find word start from uItr
if (_trie.find(uItr, end, tRes))
if (_trie.find(uItr, end, 0, tRes))
{
for (vector<pair<size_t, const TrieNodeInfo*> >::const_iterator itr = tRes.begin(); itr != tRes.end(); itr++)
for(DagType::const_iterator itr = tRes.begin(); itr != tRes.end(); itr++)
//for (vector<pair<size_t, const TrieNodeInfo*> >::const_iterator itr = tRes.begin(); itr != tRes.end(); itr++)
{
wordLen = itr->second->word.size();
if (wordLen >= 2 || (tRes.size() == 1 && maxIdx <= uIdx))

View File

@ -118,26 +118,6 @@ namespace CppJieba
return NULL;
}
bool find(Unicode::const_iterator begin, Unicode::const_iterator end, vector<pair<size_t, const TrieNodeInfo*> >& res) const
{
TrieNodeMap::const_iterator citer;
TrieNode* p = _root;
for (Unicode::const_iterator itr = begin; itr != end; itr++)
{
citer = p->hmap.find(*itr);
if(p->hmap.end() == citer)
{
break;
}
p = citer->second;
if(p->isLeaf)
{
res.push_back(make_pair(itr-begin, p->ptTrieNodeInfo));
}
}
return !res.empty();
}
bool find(Unicode::const_iterator begin, Unicode::const_iterator end, size_t offset, DagType & res) const
{
TrieNode* p = _root;

View File

@ -40,8 +40,6 @@ TEST(TrieTest, Test1)
vector<pair<size_t, const TrieNodeInfo*> > vec;
ASSERT_TRUE(TransCode::decode(word, uni));
//print(uni);
ASSERT_TRUE(trie.find(uni.begin(), uni.end(), vec));
ASSERT_EQ(vec, res);
ASSERT_TRUE(trie.find(uni.begin(), uni.end(), 0, map));
ASSERT_EQ(map, resMap);
// print(vec);