本文整理汇总了C++中Entry::begin方法的典型用法代码示例。如果您正苦于以下问题:C++ Entry::begin方法的具体用法?C++ Entry::begin怎么用?C++ Entry::begin使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Entry
的用法示例。
在下文中一共展示了Entry::begin方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
bool Hierarchy::Entry::prefixIterateAfter(Hierarchy::EntryIterator &callback)
{
if (!prefixIterate(callback))
return false;
Entry *child=this;
Entry *parent;
while ((parent=child->getParent()) != NULL)
{
vector<Entry *>::iterator b=parent->begin(), e=parent->end();
while (b != e)
if ( *b++ == child)
break;
while (b != e)
if (!(*b++)->prefixIterate(callback))
return false;
child=parent;
}
return true;
}
示例2: getEntryIterator
EntryBase::ConstIterator EntryBase::getEntryIterator( const std::string& path ) const
{
std::vector< std::string > tokens = util::tokenize( path, "/" );
for ( auto it = tokens.begin(); it != tokens.end(); ++it )
{
if ( it->empty() )
{
tokens.erase( it );
it = tokens.begin() - 1;
continue;
}
}
std::size_t currToken = 0;
auto currEnd = end();
for ( auto it = begin(); it != currEnd; ++it )
{
Entry* entry = it->get();
if ( entry->getName() == tokens[ currToken ] )
{
if ( currToken >= tokens.size() - 1 )
{
return it;
}
else if ( entry->isDirectory() and entry->children.size() >= 1 )
{
it = entry->begin() - 1;
currEnd = entry->end();
++currToken;
continue;
}
else
{
return end();
}
}
}
return end();
}