本文整理汇总了C++中path_t::clear方法的典型用法代码示例。如果您正苦于以下问题:C++ path_t::clear方法的具体用法?C++ path_t::clear怎么用?C++ path_t::clear使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类path_t
的用法示例。
在下文中一共展示了path_t::clear方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: as
void
export_md_to_apath(const char* md,
const bool is_fwd_strand,
path_t& apath,
const bool is_edge_deletion_error)
{
// to make best use of previous code, we parse the MD in the
// alignment direction and then orient apath to the forward strand
// as a second step if required
//
assert(NULL != md);
apath.clear();
export_md_to_apath_impl(md,apath);
unsigned as(apath.size());
if ( ((as>0) and (apath.front().type == DELETE)) or
((as>1) and (apath.back().type == DELETE)) )
{
std::ostringstream oss;
if (is_edge_deletion_error)
{
oss << "ERROR: ";
}
else
{
oss << "WARNING: ";
}
oss << "alignment path: " << apath_to_cigar(apath) << " contains meaningless edge deletion.\n";
if (is_edge_deletion_error)
{
throw blt_exception(oss.str().c_str());
}
else
{
log_os << oss.str();
path_t apath2;
for (unsigned i(0); i<as; ++i)
{
if (((i==0) or ((i+1)==as)) and
apath[i].type == DELETE) continue;
apath2.push_back(apath[i]);
}
apath=apath2;
as=apath.size();
}
}
if ( (not is_fwd_strand) and (as>1) )
{
std::reverse(apath.begin(),apath.end());
}
}
示例2: cptr
void
cigar_to_apath(const char* cigar,
path_t& apath)
{
using illumina::blt_util::parse_unsigned;
assert(NULL != cigar);
apath.clear();
path_segment lps;
const char* cptr(cigar);
while (*cptr)
{
path_segment ps;
// expect sequences of digits and cigar codes:
if (! isdigit(*cptr)) unknown_cigar_error(cigar,cptr);
ps.length = parse_unsigned(cptr);
ps.type = cigar_code_to_segment_type(*cptr);
if (ps.type == NONE) unknown_cigar_error(cigar,cptr);
cptr++;
if ((ps.type == PAD) || (ps.length == 0)) continue;
if (ps.type != lps.type)
{
if (lps.type != NONE) apath.push_back(lps);
lps = ps;
}
else
{
lps.length += ps.length;
}
}
if (lps.type != NONE) apath.push_back(lps);
}