本文整理汇总了C++中TPt::SortNIdById方法的典型用法代码示例。如果您正苦于以下问题:C++ TPt::SortNIdById方法的具体用法?C++ TPt::SortNIdById怎么用?C++ TPt::SortNIdById使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TPt
的用法示例。
在下文中一共展示了TPt::SortNIdById方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: while
// Test node data sorting
TEST(TNodeEdgeNet, SortNodeData) {
int NNodes = 10000;
int NEdges = 100000;
TPt <TNodeEdgeNet<TInt, TInt> > Net;
TPt <TNodeEdgeNet<TInt, TInt> > Net1;
TPt <TNodeEdgeNet<TInt, TInt> > Net2;
int i;
int n;
int NCount;
int x,y;
bool Sorted;
int Min;
int Value;
Net = TNodeEdgeNet<TInt, TInt>::New();
EXPECT_EQ(1,Net->Empty());
// create the nodes
for (i = 0; i < NNodes; i++) {
Net->AddNode((i*13) % NNodes);
}
EXPECT_EQ(0,Net->Empty());
EXPECT_EQ(NNodes,Net->GetNodes());
// create random edges
NCount = NEdges;
while (NCount > 0) {
x = (long) (drand48() * NNodes);
y = (long) (drand48() * NNodes);
n = Net->AddEdge(x, y);
NCount--;
}
EXPECT_EQ(NEdges,Net->GetEdges());
EXPECT_EQ(0,Net->Empty());
EXPECT_EQ(1,Net->IsOk());
for (i = 0; i < NNodes; i++) {
EXPECT_EQ(1,Net->IsNode(i));
}
EXPECT_EQ(0,Net->IsNode(NNodes));
EXPECT_EQ(0,Net->IsNode(NNodes+1));
EXPECT_EQ(0,Net->IsNode(2*NNodes));
// add data to nodes, square of node ID % NNodes
for (TNodeEdgeNet<TInt, TInt>::TNodeI NI = Net->BegNI(); NI < Net->EndNI(); NI++) {
// Net->AddNode(NI.GetId(), (NI.GetId()*NI.GetId()) % NNodes);
Net->SetNDat(NI.GetId(), NI.GetId()*NI.GetId() % NNodes);
}
// test node data
for (TNodeEdgeNet<TInt, TInt>::TNodeI NI = Net->BegNI(); NI < Net->EndNI(); NI++) {
EXPECT_EQ((NI.GetId()*NI.GetId()) % NNodes, Net->GetNDat(NI.GetId()));
}
// test sorting of node IDs (unsorted)
Min = -1;
Sorted = true;
for (TNodeEdgeNet<TInt, TInt>::TNodeI NI = Net->BegNI(); NI < Net->EndNI(); NI++) {
Value = NI.GetId();
if (Min > Value) {
Sorted = false;
}
Min = Value;
}
EXPECT_EQ(false,Sorted);
// sort the nodes by node IDs (sorted)
Net->SortNIdById();
// test sorting of node IDs
Min = -1;
Sorted = true;
for (TNodeEdgeNet<TInt, TInt>::TNodeI NI = Net->BegNI(); NI < Net->EndNI(); NI++) {
Value = NI.GetId();
if (Min > Value) {
Sorted = false;
}
Min = Value;
}
EXPECT_EQ(true,Sorted);
// test sorting of node data (unsorted)
Min = -1;
Sorted = true;
for (TNodeEdgeNet<TInt, TInt>::TNodeI NI = Net->BegNI(); NI < Net->EndNI(); NI++) {
Value = Net->GetNDat(NI.GetId());
if (Min > Value) {
Sorted = false;
}
Min = Value;
}
EXPECT_EQ(false,Sorted);
// sort the nodes by node data
Net->SortNIdByDat();
//.........这里部分代码省略.........
示例2: SortNodeData
// Test node data sorting
void SortNodeData() {
int NNodes = 10000;
int NEdges = 100000;
TPt <TNodeEDatNet<TInt, TInt> > Net;
TPt <TNodeEDatNet<TInt, TInt> > Net1;
TPt <TNodeEDatNet<TInt, TInt> > Net2;
int i;
int n;
int NCount;
int x,y;
bool t;
int NodeId;
int NodeDat;
bool ok;
bool Sorted;
int Min;
int Value;
Net = TNodeEDatNet<TInt, TInt>::New();
t = Net->Empty();
// create the nodes
for (i = 0; i < NNodes; i++) {
Net->AddNode((i*13) % NNodes);
}
t = Net->Empty();
n = Net->GetNodes();
// create random edges
NCount = NEdges;
while (NCount > 0) {
x = (long) (drand48() * NNodes);
y = (long) (drand48() * NNodes);
// Net->GetEdges() is not correct for the loops (x == y),
// skip the loops in this test
if (x != y && !Net->IsEdge(x,y)) {
n = Net->AddEdge(x, y);
NCount--;
}
}
PrintNStats("SortNodeData:Net", Net);
// add data to nodes, square of node ID % NNodes
for (TNodeEDatNet<TInt, TInt>::TNodeI NI = Net->BegNI(); NI < Net->EndNI(); NI++) {
NodeId = NI.GetId();
NodeDat = (NI.GetId()*NI.GetId()) % NNodes;
Net->SetNDat(NodeId, NodeDat);
}
// test node data
ok = true;
for (TNodeEDatNet<TInt, TInt>::TNodeI NI = Net->BegNI(); NI < Net->EndNI(); NI++) {
NodeDat = Net->GetNDat(NI.GetId());
Value = (NI.GetId()*NI.GetId()) % NNodes;
if (NodeDat != Value) {
ok = false;
}
}
printf("network SortNodeData:Net, status1 %s\n", (ok == true) ? "ok" : "ERROR");
// test sorting of node IDs (unsorted)
Min = -1;
Sorted = true;
for (TNodeEDatNet<TInt, TInt>::TNodeI NI = Net->BegNI(); NI < Net->EndNI(); NI++) {
Value = NI.GetId();
if (Min > Value) {
Sorted = false;
}
Min = Value;
}
printf("network SortNodeData:Net, status2 %s\n", (Sorted == false) ? "ok" : "ERROR");
// sort the nodes by node IDs (sorted)
Net->SortNIdById();
// test sorting of node IDs
Min = -1;
Sorted = true;
for (TNodeEDatNet<TInt, TInt>::TNodeI NI = Net->BegNI(); NI < Net->EndNI(); NI++) {
Value = NI.GetId();
if (Min > Value) {
Sorted = false;
}
Min = Value;
}
printf("network SortNodeData:Net, status3 %s\n", (Sorted == true) ? "ok" : "ERROR");
// test sorting of node data (unsorted)
Min = -1;
Sorted = true;
for (TNodeEDatNet<TInt, TInt>::TNodeI NI = Net->BegNI(); NI < Net->EndNI(); NI++) {
Value = Net->GetNDat(NI.GetId());
if (Min > Value) {
Sorted = false;
}
Min = Value;
}
printf("network SortNodeData:Net, status4 %s\n", (Sorted == false) ? "ok" : "ERROR");
//.........这里部分代码省略.........