本文整理汇总了C++中IDList::clear方法的典型用法代码示例。如果您正苦于以下问题:C++ IDList::clear方法的具体用法?C++ IDList::clear怎么用?C++ IDList::clear使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IDList
的用法示例。
在下文中一共展示了IDList::clear方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: LockedEditEntry
bool QueueEditor::LockedEditEntry(DownloadQueue* pDownloadQueue, int ID, bool bSmartOrder, EEditAction eAction, int iOffset, const char* szText)
{
IDList cIDList;
cIDList.clear();
cIDList.push_back(ID);
return InternEditList(pDownloadQueue, &cIDList, bSmartOrder, eAction, iOffset, szText);
}
示例2: EditEntry
bool QueueEditor::EditEntry(int ID, bool bSmartOrder, EEditAction eAction, int iOffset, const char* szText)
{
IDList cIDList;
cIDList.clear();
cIDList.push_back(ID);
return EditList(&cIDList, NULL, mmID, bSmartOrder, eAction, iOffset, szText);
}
示例3: main
int main(int argc, char* argv[])
{
struct timeval startTime, endTime;
gettimeofday(&startTime, NULL);
string inFileName = "", cutoffFileName = "";
printf("\n----------------------------------------------------------------------\n");
printf(" DENDROGRAM CUTTING GENETIC DISTANCES \n");
int i, numReads;
getOptions(argc, argv, inFileName, cutoffFileName, numReads);
FILE * cutoffFile = NULL;
vector<float> cutoffs;
float cutoff;
cutoffFile = fopen(cutoffFileName.c_str(),"r");
while(!feof(cutoffFile)) {
fscanf(cutoffFile, "%f\n", &cutoff);
cutoffs.push_back(cutoff);
cout << cutoff << endl;
}
fclose(cutoffFile);
leaves=(TreeNode**)malloc(sizeof(TreeNode*)*(2*numReads+1));
if(leaves==0)
{
cout<<"Error: Not enough memory" << endl;
exit(-1);
}
for(i = 0; i < numReads; ++i)
leaves[i] = new TreeNode(i);
for(i = numReads+1; i < 2*numReads+1; ++i)
leaves[i] = 0;
int idX, idY;
float dist;
string mergeFileName=inFileName;
mergeFileName.append("_Merge");
FILE * mergeFile;
mergeFile = fopen(mergeFileName.c_str(), "r");
newId = numReads;
while ( fscanf(mergeFile, "%d %d %f", &idX, &idY, &dist) == 3 )
merge(leaves[idX-1], leaves[idY-1], dist);
fclose(mergeFile);
cout << "DONE!" << endl;
cout << "current node: " << newId << endl;
// get root nodes and orphan nodes
NodeSet roots;
IDList orphanNodes;
TreeNode *aLeaf = 0;
for(i=0; i< numReads; ++i)
{
aLeaf = leaves[i];
if(aLeaf->parent==0) // find nodes with no parent
orphanNodes.push_back(i);
else
roots.insert(aLeaf->topParent);
}
// print output to files
string clusterListName, clusterName;
clusterListName=inFileName;
clusterListName.append(".Cluster_List");
clusterName=inFileName;
clusterName.append(".Cluster");
printClusters(roots, orphanNodes, clusterListName, clusterName, cutoffs);
// clear memory
emptyTree(roots);
roots.clear();
orphanNodes.clear();
free(leaves);
gettimeofday(&endTime, NULL);
long elapsedTime = (endTime.tv_sec - startTime.tv_sec) * 1000u + (endTime.tv_usec - startTime.tv_usec) / 1.e3 + 0.5;
printf("Time taken: %.3f s\n", elapsedTime/1.e3);
printf("\n----------------------------------------------------------------------\n");
return 0;
}
示例4: printClusters
int printClusters(NodeSet roots, IDList orphanNodes,
string clusterListName, string clusterName,
vector<float> cutoffs)
{
TreeNode *tempNode = 0;
NodeSetIter setIter;
NodeList nodeList, tempList;
NodeListIter nodeIt, tempIt;
IDList OTU;
IDListIter it;
unsigned int size, numOTUs;
FILE *clusterListFile, *clusterFile;
clusterListFile = fopen(clusterListName.c_str(),"wb");
clusterFile = fopen(clusterName.c_str(),"wb");
if(clusterListFile == NULL|| clusterFile == NULL)
{
cout << "Cannot open output files. Skipped" << endl;
return 0;
}
printf("\n");
vector<float>::iterator c;
float distLevel;
for(c = cutoffs.begin(); c != cutoffs.end(); c++)
{
distLevel = *(c);
numOTUs = 0;
nodeList.clear();
// extract the valid nodes for each distance level
for(setIter=roots.begin(); setIter!=roots.end(); ++setIter)
{
tempNode=0;
if(*setIter != 0)
{
if((*setIter)->dist < distLevel || fabs((*setIter)->dist-distLevel) < EPSILON)
{
nodeList.push_front(*setIter);
continue;
}
tempList.push_front(*setIter);
while (tempList.size()!=0)
{
tempIt=tempList.begin();
tempNode=(*tempIt);
tempList.pop_front();
if (tempNode->left->dist < distLevel || fabs(tempNode->left->dist-distLevel) < EPSILON)
nodeList.push_front(tempNode->left);
else
tempList.push_front(tempNode->left);
if (tempNode->right->dist < distLevel || fabs(tempNode->right->dist-distLevel) < EPSILON)
nodeList.push_front(tempNode->right);
else
tempList.push_front(tempNode->right);
}
}
tempList.clear();
}
fprintf(clusterListFile," %.6f ", distLevel);
fprintf(clusterFile," %.6f ", distLevel);
// write the nodeList to file
tempList.clear();
for(nodeIt=nodeList.begin(); nodeIt!=nodeList.end(); ++nodeIt)
{
// clean up and initialize
fprintf(clusterFile,"|");
tempNode=0;
size=0;
OTU.clear();
tempList.push_front(*nodeIt);
while(tempList.size()!=0)
{
tempIt=tempList.begin();
tempNode=(*tempIt);
tempList.pop_front();
if(tempNode->left==0 && tempNode->right==0)
{
OTU.push_back(tempNode->ID);
size+=tempNode->numMembers;
}
if (tempNode->right!=0)
tempList.push_front(tempNode->right);
if(tempNode->left!=0 )
tempList.push_front(tempNode->left);
}
tempList.clear();
// print to clusterFile
//.........这里部分代码省略.........
示例5: main
//.........这里部分代码省略.........
while(totalNumEdges < MAX_NUM_EDGES && !nodeMap.empty())
{
// get the first item in the nodeMap
iter = nodeMap.begin();
fileId = iter->second.fileId;
// write to output
idX = iter->second.idX;
idY = iter->second.idY;
dist = iter->first;
absorb(idX, idY, dist);
// remove the current item from the nodeMap
nodeMap.erase(iter);
suc = loadAPair(readSizes[fileId], indices[fileId], EOFTags[fileId], idX, idY, dist, pairFileList[fileId], distFileList[fileId], inPairArray[fileId], inDistArray[fileId]);
if (suc)
nodeMap.insert(pair<float, DistPair>(dist,DistPair(idX,idY,fileId)));
}
while(!nodeMap.empty())
{
// get the first item in the nodeMap
iter = nodeMap.begin();
fileId = iter->second.fileId;
// write to output
idX = iter->second.idX;
idY = iter->second.idY;
dist = iter->first;
lookAhead(idX, idY, dist);
// remove the current item from the nodeMap
nodeMap.erase(iter);
suc = loadAPair(readSizes[fileId], indices[fileId], EOFTags[fileId], idX, idY, dist, pairFileList[fileId], distFileList[fileId], inPairArray[fileId], inDistArray[fileId]);
if (suc)
nodeMap.insert(pair<float, DistPair>(dist,DistPair(idX,idY,fileId)));
}
cout << "DONE!" << endl;
cout << "current node: " << newId << "\tnum unlinked: " << totalUnlinked << endl;
// get root nodes and orphan nodes
NodeSet roots;
IDList orphanNodes;
TreeNode *aLeaf = 0;
for(i=0; i< numReads; ++i)
{
aLeaf = leaves[i];
if(aLeaf->parent==0) // find nodes with no parent
orphanNodes.push_back(i);
else
roots.insert(aLeaf->topParent);
}
// print output to files
string clusterListName, clusterName;
clusterListName=inFileName;
clusterListName.append(".Cluster_List");
clusterName=inFileName;
clusterName.append(".Cluster");
printClusters(roots, orphanNodes, clusterListName, clusterName, stepSize, endLevel);
// clear memory
emptyTree(roots);
roots.clear();
orphanNodes.clear();
free(leaves);
vActiveNodes.clear();
// clean up
for(fileId=0; fileId<numFiles; ++fileId) {
free(inDistArray[fileId]);
free(inPairArray[fileId]);
}
free(inDistArray);
free(inPairArray);
free(indices);
free(readSizes);
free(EOFTags);
free(pairFileList);
free(distFileList);
gettimeofday(&endTime, NULL);
long elapsedTime = (endTime.tv_sec - startTime.tv_sec) * 1000u + (endTime.tv_usec - startTime.tv_usec) / 1.e3 + 0.5;
printf("totalNumPairs: %llu\n", totalNumPairs);
printf("Time taken: %.3f s\n", elapsedTime/1.e3);
printf("\n----------------------------------------------------------------------\n");
return 0;
}
示例6: main
//.........这里部分代码省略.........
endLevel = lambda;
allLoaded = true;
cout << "new endLevel: " << endLevel << endl;
}
}
if (nodeMap.empty())
allLoaded = true;
updateAllMin(endLevel);
minInexactDist = *min_element(vInexactDist.begin(), vInexactDist.end());
minExactIter = min_element(vExactDist.begin(),vExactDist.end());
minExactDist = *minExactIter;
//cout << "lambda_" << iteration << " = " << lambda << "\t" << lambda/2 << "\t" << minInexactDist << endl;
while ((minExactDist < 1.0f) && (minExactDist < minInexactDist || fabs(minExactDist-minInexactDist) < EPSILON))
{
minExactIndex = minExactIter-vExactDist.begin();
nodeX = vActiveNodes[minExactIndex]->topParent;
nodeY = vExactNodes[minExactIndex]->topParent;
merge(nodeX, nodeY, minExactDist, endLevel);
fprintf(mergeFile, "%d %d %.6f\n", nodeX->ID+1, nodeY->ID+1, minExactDist);
minInexactDist = *min_element(vInexactDist.begin(), vInexactDist.end());
minExactIter = min_element(vExactDist.begin(),vExactDist.end());
minExactDist = *minExactIter;
}
//cout << "cannot progress: " << newId << "\t" << totalNumEdges << "\t" << minInexactDist << "\t" << minExactDist << "\t" << minExactDist - lambda/2 << "\n";
++iteration;
}
cout << "DONE!" << endl;
cout << "current node: " << newId << "\tnum unlinked: " << totalUnlinked << endl;
// get root nodes and orphan nodes
NodeSet roots;
IDList orphanNodes;
TreeNode *aLeaf = 0;
for(i=0; i< numReads; ++i)
{
aLeaf = leaves[i];
if(aLeaf->parent==0) // find nodes with no parent
orphanNodes.push_back(i);
else
roots.insert(aLeaf->topParent);
}
// print output to files
string clusterListName, clusterName;
clusterListName=inFileName;
clusterListName.append(".Cluster_List");
clusterName=inFileName;
clusterName.append(".Cluster");
printClusters(roots, orphanNodes, clusterListName, clusterName, endLevel);
// clear memory
emptyTree(roots);
roots.clear();
orphanNodes.clear();
free(leaves);
vActiveNodes.clear();
vExactNodes.clear();
vExactDist.clear();
// clean up
for(fileId=0; fileId<numFiles; ++fileId) {
free(inDistArray[fileId]);
free(inPairArray[fileId]);
}
free(inDistArray);
free(inPairArray);
free(indices);
free(readSizes);
free(EOFTags);
free(pairFileList);
free(distFileList);
gettimeofday(&endTime, NULL);
long elapsedTime = (endTime.tv_sec - startTime.tv_sec) * 1000u + (endTime.tv_usec - startTime.tv_usec) / 1.e3 + 0.5;
if (outFile != NULL) {
fclose(outFile);
fclose(outFile1);
}
fclose(mergeFile);
printf("totalNumPairs: %llu\n", totalNumPairs);
printf("Time taken: %.3f s\n", elapsedTime/1.e3);
printf("\n----------------------------------------------------------------------\n");
return 0;
}
示例7: EditGroup
bool QueueEditor::EditGroup(DownloadQueue* pDownloadQueue, FileInfo* pFileInfo, EEditAction eAction, int iOffset, const char* szText)
{
IDList cIDList;
cIDList.clear();
// collecting files belonging to group
for (FileQueue::iterator it = pDownloadQueue->GetFileQueue()->begin(); it != pDownloadQueue->GetFileQueue()->end(); it++)
{
FileInfo* pFileInfo2 = *it;
if (pFileInfo2->GetNZBInfo() == pFileInfo->GetNZBInfo())
{
cIDList.push_back(pFileInfo2->GetID());
}
}
if (eAction == eaGroupMoveOffset)
{
// calculating offset in terms of files
FileList cGroupList;
BuildGroupList(pDownloadQueue, &cGroupList);
unsigned int iNum = 0;
for (FileList::iterator it = cGroupList.begin(); it != cGroupList.end(); it++, iNum++)
{
FileInfo* pGroupInfo = *it;
if (pGroupInfo->GetNZBInfo() == pFileInfo->GetNZBInfo())
{
break;
}
}
int iFileOffset = 0;
if (iOffset > 0)
{
if (iNum + iOffset >= cGroupList.size() - 1)
{
eAction = eaGroupMoveBottom;
}
else
{
for (unsigned int i = iNum + 2; i < cGroupList.size() && iOffset > 0; i++, iOffset--)
{
iFileOffset += FindFileInfoEntry(pDownloadQueue, cGroupList[i]) - FindFileInfoEntry(pDownloadQueue, cGroupList[i-1]);
}
}
}
else
{
if (iNum + iOffset <= 0)
{
eAction = eaGroupMoveTop;
}
else
{
for (unsigned int i = iNum; i > 0 && iOffset < 0; i--, iOffset++)
{
iFileOffset -= FindFileInfoEntry(pDownloadQueue, cGroupList[i]) - FindFileInfoEntry(pDownloadQueue, cGroupList[i-1]);
}
}
}
iOffset = iFileOffset;
}
else if (eAction == eaGroupDelete)
{
pFileInfo->GetNZBInfo()->SetDeleted(true);
pFileInfo->GetNZBInfo()->SetCleanupDisk(CanCleanupDisk(pDownloadQueue, pFileInfo->GetNZBInfo()));
}
EEditAction GroupToFileMap[] = { (EEditAction)0, eaFileMoveOffset, eaFileMoveTop, eaFileMoveBottom,
eaFilePause, eaFileResume, eaFileDelete, eaFilePauseAllPars, eaFilePauseExtraPars, eaFileSetPriority, eaFileReorder,
eaFileMoveOffset, eaFileMoveTop, eaFileMoveBottom, eaFilePause, eaFileResume, eaFileDelete,
eaFilePauseAllPars, eaFilePauseExtraPars, eaFileSetPriority,
(EEditAction)0, (EEditAction)0, (EEditAction)0 };
return InternEditList(pDownloadQueue, &cIDList, true, GroupToFileMap[eAction], iOffset, szText);
}