本文整理汇总了C++中OBBitVec::EndBit方法的典型用法代码示例。如果您正苦于以下问题:C++ OBBitVec::EndBit方法的具体用法?C++ OBBitVec::EndBit怎么用?C++ OBBitVec::EndBit使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OBBitVec
的用法示例。
在下文中一共展示了OBBitVec::EndBit方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: BuildOBRTreeVector
void BuildOBRTreeVector(OBAtom *atom,OBRTree *prv,vector<OBRTree*> &vt,OBBitVec &bv)
{
vt[atom->GetIdx()] = new OBRTree (atom,prv);
int i;
OBAtom *nbr;
OBMol *mol = (OBMol*)atom->GetParent();
OBBitVec curr,used,next;
vector<OBBond*>::iterator j;
curr |= atom->GetIdx();
used = bv|curr;
#define OB_RTREE_CUTOFF 20
int level=0;
for (;;)
{
next.Clear();
for (i = curr.NextBit(0);i != bv.EndBit();i = curr.NextBit(i))
{
atom = mol->GetAtom(i);
for (nbr = atom->BeginNbrAtom(j);nbr;nbr = atom->NextNbrAtom(j))
if (!used[nbr->GetIdx()])
{
next |= nbr->GetIdx();
used |= nbr->GetIdx();
vt[nbr->GetIdx()] = new OBRTree (nbr,vt[atom->GetIdx()]);
}
}
if (next.Empty())
break;
curr = next;
level++;
if (level > OB_RTREE_CUTOFF)
break;
}
#undef OB_RTREE_CUTOFF
}