本文整理汇总了C++中Visitor::on_label_not_dominated方法的典型用法代码示例。如果您正苦于以下问题:C++ Visitor::on_label_not_dominated方法的具体用法?C++ Visitor::on_label_not_dominated怎么用?C++ Visitor::on_label_not_dominated使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Visitor
的用法示例。
在下文中一共展示了Visitor::on_label_not_dominated方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: new_sp_label
//.........这里部分代码省略.........
vec_last_valid_positions_for_dominance[i_cur_resident_vertex_num] =
list_labels_cur_vertex.begin();
b_vec_vertex_already_checked_for_dominance
[i_cur_resident_vertex_num] = true;
vec_last_valid_index_for_dominance[i_cur_resident_vertex_num] =
static_cast<int>( list_labels_cur_vertex.size() ) - 1;
}
}
if( !b_all_pareto_optimal_solutions && cur_label->resident_vertex == t )
{
// the devil don't sleep
if( cur_label->b_is_dominated )
{
l_alloc.destroy( cur_label.get() );
l_alloc.deallocate( cur_label.get(), 1 );
}
while( unprocessed_labels.size() )
{
Splabel l = unprocessed_labels.top();
unprocessed_labels.pop();
// delete only dominated labels, because nondominated labels are
// deleted at the end of the function
if( l->b_is_dominated )
{
l_alloc.destroy( l.get() );
l_alloc.deallocate( l.get(), 1 );
}
}
break;
}
if( !cur_label->b_is_dominated )
{
cur_label->b_is_processed = true;
vis.on_label_not_dominated( *cur_label, g );
typename graph_traits<Graph>::vertex_descriptor cur_vertex =
cur_label->resident_vertex;
typename graph_traits<Graph>::out_edge_iterator oei, oei_end;
for( boost::tie( oei, oei_end ) = out_edges( cur_vertex, g );
oei != oei_end;
++oei )
{
b_feasible = true;
r_c_shortest_paths_label<Graph, Resource_Container>* new_label =
l_alloc.allocate( 1 );
l_alloc.construct( new_label,
r_c_shortest_paths_label
<Graph, Resource_Container>
( i_label_num++,
cur_label->cumulated_resource_consumption,
cur_label.get(),
*oei,
target( *oei, g ) ) );
b_feasible =
ref( g,
new_label->cumulated_resource_consumption,
new_label->p_pred_label->cumulated_resource_consumption,
new_label->pred_edge );
if( !b_feasible )
{
vis.on_label_not_feasible( *new_label, g );
l_alloc.destroy( new_label );
l_alloc.deallocate( new_label, 1 );
}
else
{