void FindOrgNames(objects::CSeq_entry_Handle seh, vector<string>& taxnames) { if (!seh) return; objects::CBioseq_CI b_iter(seh, objects::CSeq_inst::eMol_na); for ( ; b_iter ; ++b_iter ) { objects::CSeqdesc_CI it (*b_iter, objects::CSeqdesc::e_Source); if (it) { if (it->GetSource().IsSetTaxname()) { taxnames.push_back(it->GetSource().GetTaxname()); } } } }
Set<Pair> operator*(const Set<int>& a,const Set<int>& b){ Set<Pair> result; Setiter<int> a_iter(a); const int* ap; while ( ap = a_iter.next() ) { Pair p; p.i = *ap; Setiter<int> b_iter(b); const int* bp; while( bp = b_iter.next() ) { p.j = *bp; result.insert(p); } } return result; }