本文整理汇总了C++中Partition::SetIDs方法的典型用法代码示例。如果您正苦于以下问题:C++ Partition::SetIDs方法的具体用法?C++ Partition::SetIDs怎么用?C++ Partition::SetIDs使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Partition
的用法示例。
在下文中一共展示了Partition::SetIDs方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GeneratePartition
/**
* Generate a partition with the current state of the tree
*
* \param NewPartition Object to store the partition obtained
*
*/
void ClusteringRefinementDivisive::GeneratePartition(Partition& NewPartition)
{
map<instance_t, cluster_id_t> Assignment;
map<instance_t, cluster_id_t>::iterator AssignmentIt;
vector<ClusterInformation*> TopLevelNodes = NodesPerLevel[0];
for (size_t i = 0; i < TopLevelNodes.size(); i++)
{
vector<pair<instance_t, cluster_id_t> > PartialAssignment;
PartialAssignment = GetAssignment(TopLevelNodes[i], 0);
/* DEBUG
cout << "PartialAssignment from ID = " << TopLevelNodes[i]->GetID();
cout << " sizes " << PartialAssignment.size() << endl; */
for (size_t j = 0; j < PartialAssignment.size(); j++)
{
Assignment[PartialAssignment[j].first] = PartialAssignment[j].second;
}
}
vector<cluster_id_t>& CurrentAssignmentVector =
NewPartition.GetAssignmentVector();
set<cluster_id_t> DifferentIDs;
for (AssignmentIt = Assignment.begin();
AssignmentIt != Assignment.end();
++AssignmentIt)
{
/* DEBUG
cout << "Instance = " << AssignmentIt->first << " ID = " << AssignmentIt->second << endl; */
CurrentAssignmentVector.push_back(AssignmentIt->second);
DifferentIDs.insert(AssignmentIt->second);
}
NewPartition.SetIDs(DifferentIDs);
return;
}