本文整理汇总了C++中TStr::RightOfLast方法的典型用法代码示例。如果您正苦于以下问题:C++ TStr::RightOfLast方法的具体用法?C++ TStr::RightOfLast怎么用?C++ TStr::RightOfLast使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TStr
的用法示例。
在下文中一共展示了TStr::RightOfLast方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char* argv[]) {
setbuf(stdout, NULL); // disables the buffer so that print statements are not buffered and display immediately (?)
Env = TEnv(argc, argv, TNotify::StdNotify);
Env.PrepArgs(TStr::Fmt("Node centrality. build: %s, %s. Time: %s", __TIME__, __DATE__, TExeTm::GetCurTm()));
TExeTm ExeTm;
Try
const TStr InFNm = Env.GetIfArgPrefixStr("-i:", "", "input network");
const TStr OutFNm = Env.GetIfArgPrefixStr("-o:", "", "output prefix (filename extensions added)");
const TStr BseFNm = OutFNm.RightOfLast('/');
const double eps = Env.GetIfArgPrefixFlt("-eps:", 1.0e-5, "minimum quality improvement threshold");
const double min_moves = Env.GetIfArgPrefixFlt("-moves:", 1.0e-2, "minimum number of moves required (proportional)");
const double max_iters = Env.GetIfArgPrefixFlt("-iters:", 1.0e+4, "maximum number of iterations");
// Load graph and create directed and undirected graphs (pointer to the same memory)
printf("\nLoading %s...", InFNm.CStr());
PFltWNGraph WGraph = TSnap::LoadFltWEdgeList<TWNGraph>(InFNm);
printf(" DONE\n");
printf(" nodes: %d\n", WGraph->GetNodes());
printf(" edges: %d\n", WGraph->GetEdges());
printf(" time elapsed: %s (%s)\n", ExeTm.GetTmStr(), TSecTm::GetCurTm().GetTmStr().CStr());
// Declare variables
// COMMUNITY
// TODO
// Louvain method (modularity objective)
Catch
printf("\nrun time: %s (%s)\n", ExeTm.GetTmStr(), TSecTm::GetCurTm().GetTmStr().CStr());
return 0;
}
示例2:
TEST(TStr, LeftOfRightOf) {
TStr Str = "abcdef";
TStr Empty = "";
EXPECT_EQ(Str.LeftOf('d'), "abc");
EXPECT_EQ(Str.RightOf('c'), "def");
EXPECT_EQ(Str.LeftOf('a'), "");
EXPECT_EQ(Empty.RightOf('c'), "");
// edge cases
EXPECT_EQ(Str.RightOf('f'), "");
EXPECT_EQ(Empty.LeftOf('d'), "");
TStr Str2 = "abcdefabcdef";
EXPECT_EQ(Str2.LeftOfLast('d'), "abcdefabc");
EXPECT_EQ(Str2.RightOfLast('c'), "def");
EXPECT_EQ(Empty.LeftOfLast('d'), "");
EXPECT_EQ(Empty.RightOfLast('c'), "");
// edge cases
Str2 = "xabcdefabcdef";
EXPECT_EQ(Str2.LeftOfLast('x'), "");
EXPECT_EQ(Str2.RightOfLast('f'), "");
}
示例3: main
int main(int argc, char* argv[]) {
setbuf(stdout, NULL); // disables the buffer so that print statements are not buffered and display immediately (?)
Env = TEnv(argc, argv, TNotify::StdNotify);
Env.PrepArgs(TStr::Fmt("Graph connectivity. build: %s, %s. Time: %s", __TIME__, __DATE__, TExeTm::GetCurTm()));
TExeTm ExeTm;
Try
const TStr InFNm = Env.GetIfArgPrefixStr("-i:", "", "input network");
const TStr SubsetNIdVFNm = Env.GetIfArgPrefixStr("-j:", "", "subset of nodes");
const TStr OutFNm = Env.GetIfArgPrefixStr("-o:", "", "output prefix (filename extensions added)");
const TStr BseFNm = OutFNm.RightOfLast('/');
const bool c = Env.GetIfArgPrefixBool("-c:", false, "collate centralities into matrix (T / F)");
// Load graph and create directed and undirected graphs (pointer to the same memory)
printf("\nLoading %s...", InFNm.CStr());
PNGraph Graph = TSnap::LoadEdgeList<PNGraph>(InFNm);
printf(" DONE\n");
printf(" nodes: %d\n", Graph->GetNodes());
printf(" edges: %d\n", Graph->GetEdges());
printf(" time elapsed: %s (%s)\n", ExeTm.GetTmStr(), TSecTm::GetCurTm().GetTmStr().CStr());
// Load subset nodes
TIntV SubsetNIdV = TSnap::LoadTxtIntV(SubsetNIdVFNm);
// Declare variables
TIntIntH InNodesH, InDiameterH, OutNodesH, OutDiameterH, NodesH, DiameterH;
TNGraph::TNodeI NI;
// SUBSET DIAMETER AND NODE COUNTS
printf("Computing subset diameter and node counts\n");
TSnap::TFixedMemorySubsetDiameter<PNGraph> FixedMemorySubsetDiameter(Graph);
printf(" ...");
FixedMemorySubsetDiameter.ComputeInSubsetDiameter(SubsetNIdV, InNodesH, InDiameterH);
printf(" DONE (time elapsed: %s (%s))\n", ExeTm.GetTmStr(), TSecTm::GetCurTm().GetTmStr().CStr());
printf(" ...");
FixedMemorySubsetDiameter.ComputeOutSubsetDiameter(SubsetNIdV, OutNodesH, OutDiameterH);
printf(" DONE (time elapsed: %s (%s))\n", ExeTm.GetTmStr(), TSecTm::GetCurTm().GetTmStr().CStr());
printf(" ...");
FixedMemorySubsetDiameter.ComputeSubsetDiameter(SubsetNIdV, NodesH, DiameterH);
printf(" DONE (time elapsed: %s (%s))\n", ExeTm.GetTmStr(), TSecTm::GetCurTm().GetTmStr().CStr());
// OUTPUTTING (mostly verbose printing statements, don't get scared)
if (c) {
printf("\nSaving %s.diameters.combined...", BseFNm.CStr());
const TStr CombinedFNm = TStr::Fmt("%s.diameters.combined", OutFNm.CStr());
FILE *F = fopen(CombinedFNm.CStr(), "wt");
fprintf(F,"# Subset diameters and node counts (in / out / undirected)\n");
fprintf(F,"# Nodes: %d\tEdges: %d\t Subset size: %d\n", Graph->GetNodes(), Graph->GetEdges(), SubsetNIdV.Len());
fprintf(F,"# SubsetNodeId\tInDiameter\tInNodes\tOutDiameter\tOutNodes\tDiameter\tNodes\n");
for (NI = Graph->BegNI(); NI < Graph->EndNI(); NI++) {
const int NId = NI.GetId(); fprintf(F, "%d", NId);
fprintf(F, "\t%d\t%d", int(InDiameterH.GetDat(NId)), int(InNodesH.GetDat(NId)));
fprintf(F, "\t%d\t%d", int(OutDiameterH.GetDat(NId)), int(OutNodesH.GetDat(NId)));
fprintf(F, "\t%d\t%d", int(DiameterH.GetDat(NId)), int(NodesH.GetDat(NId)));
fprintf(F, "\n");
}
printf(" DONE\n");
} else {
printf("\nSaving %s.nodes.IN...", BseFNm.CStr());
TSnap::SaveTxt(InNodesH, TStr::Fmt("%s.nodes.IN", OutFNm.CStr()), "Number of nodes in neighborhood (in) ", "Node", "Number");
printf(" DONE");
printf("\nSaving %s.nodes.OUT...", BseFNm.CStr());
TSnap::SaveTxt(OutNodesH, TStr::Fmt("%s.nodes.OUT", OutFNm.CStr()), "Number of nodes in neighborhood (out) ", "Node", "Number");
printf(" DONE");
printf("\nSaving %s.nodes...", BseFNm.CStr());
TSnap::SaveTxt(NodesH, TStr::Fmt("%s.nodes", OutFNm.CStr()), "Number of nodes in neighborhood (undirected) ", "Node", "Number");
printf(" DONE\n");
printf("\nSaving %s.diameter.IN...", BseFNm.CStr());
TSnap::SaveTxt(InDiameterH, TStr::Fmt("%s.diameter.IN", OutFNm.CStr()), "Diameter of neighborhood (in) ", "Node", "Diameter");
printf(" DONE");
printf("\nSaving %s.diameter.OUT...", BseFNm.CStr());
TSnap::SaveTxt(OutDiameterH, TStr::Fmt("%s.diameter.OUT", OutFNm.CStr()), "Diameter of neighborhood (out) ", "Node", "Diameter");
printf(" DONE");
printf("\nSaving %s.diameter...", BseFNm.CStr());
TSnap::SaveTxt(DiameterH, TStr::Fmt("%s.diameter", OutFNm.CStr()), "Diameter of neighborhood (undirected) ", "Node", "Diameter");
printf(" DONE\n");
}
Catch
printf("\nTotal run time: %s (%s)\n", ExeTm.GetTmStr(), TSecTm::GetCurTm().GetTmStr().CStr());
return 0;
}
示例4: main
int main(int argc, char* argv[]) {
setbuf(stdout, NULL); // disables the buffer so that print statements are not buffered and display immediately (?)
Env = TEnv(argc, argv, TNotify::StdNotify);
Env.PrepArgs(TStr::Fmt("Node centrality. build: %s, %s. Time: %s", __TIME__, __DATE__, TExeTm::GetCurTm()));
TExeTm ExeTm;
Try
const TStr InFNm = Env.GetIfArgPrefixStr("-i:", "", "input network");
const TStr OutFNm = Env.GetIfArgPrefixStr("-o:", "", "output prefix (filename extensions added)");
const TStr BseFNm = OutFNm.RightOfLast('/');
const int k = Env.GetIfArgPrefixInt("-k:", 1, "depth of weighted degree distributions (1 / 2 / ...)");
const bool c = Env.GetIfArgPrefixBool("-c:", false, "collate centralities into matrix (T / F)");
// Load graph and create directed and undirected graphs (pointer to the same memory)
printf("\nLoading %s...", InFNm.CStr());
PFltWNGraph WGraph = TSnap::LoadFltWEdgeList<TWNGraph>(InFNm);
printf(" DONE\n");
printf(" nodes: %d\n", WGraph->GetNodes());
printf(" edges: %d\n", WGraph->GetEdges());
printf(" time elapsed: %s (%s)\n", ExeTm.GetTmStr(), TSecTm::GetCurTm().GetTmStr().CStr());
// Declare variables
TIntFltVH FirstWDegVH;
TIntFltVH kWInDegVH, kWOutDegVH, kWDegVH;
TIntFltVH WDegCentrVH, WEigCentrVH;
TFltV WEigDiffV;
TIntFltH WPgRH;
double WPgRDiff;
TFltWNGraph::TNodeI NI;
TFltV::TIter VI;
// CENTRALITY (computations)
// Weighted first degree distributions
printf("\nComputing weighted degree distributions...");
TSnap::GetWDegVH(WGraph, FirstWDegVH);
printf(" DONE (time elapsed: %s (%s))\n", ExeTm.GetTmStr(), TSecTm::GetCurTm().GetTmStr().CStr());
// 1:k degree distributions
printf("Computing egonet degrees for k = 1 to %d (in / out / undirected)\n", k);
TSnap::TFixedMemorykWDeg<TFlt, TWNGraph> FixedMemorykWDeg(WGraph, k);
printf(" ...");
FixedMemorykWDeg.GetkWInDegSeqH(kWInDegVH);
printf(" DONE (time elapsed: %s (%s))\n", ExeTm.GetTmStr(), TSecTm::GetCurTm().GetTmStr().CStr());
printf(" ...");
FixedMemorykWDeg.GetkWOutDegSeqH(kWOutDegVH);
printf(" DONE (time elapsed: %s (%s))\n", ExeTm.GetTmStr(), TSecTm::GetCurTm().GetTmStr().CStr());
printf(" ...");
FixedMemorykWDeg.GetkWDegSeqH(kWDegVH);
printf(" DONE (time elapsed: %s (%s))\n", ExeTm.GetTmStr(), TSecTm::GetCurTm().GetTmStr().CStr());
// Centrality measures
printf("Computing weighted degree centrality...");
TSnap::GetWDegreeCentrVH(WGraph, WDegCentrVH, 0.5);
printf(" DONE (time elapsed: %s (%s))\n", ExeTm.GetTmStr(), TSecTm::GetCurTm().GetTmStr().CStr());
printf("Computing weighted eigenvector centrality...");
WEigDiffV = TSnap::GetWEigenVectorCentrVH<TFlt>(WGraph, WEigCentrVH, 1e-4, 1000);
printf(" DONE (time elapsed: %s (%s))\n", ExeTm.GetTmStr(), TSecTm::GetCurTm().GetTmStr().CStr());
printf(" convergence differences (in / out / undirected)\n");
printf(" %f\n", double(WEigDiffV[0]));
printf(" %f\n", double(WEigDiffV[1]));
printf(" %f\n", double(WEigDiffV[2]));
printf("Computing weighted PageRank centrality...");
WPgRDiff = TSnap::GetWPageRank<TFlt>(WGraph, WPgRH, 0.85, 1e-4, 1000);
printf(" DONE (time elapsed: %s (%s))\n", ExeTm.GetTmStr(), TSecTm::GetCurTm().GetTmStr().CStr());
printf(" convergence difference: %f\n", double(WPgRDiff));
// OUTPUTTING (mostly verbose printing statements, don't get scared)
if (c) {
printf("\nSaving %s.wcentr...", BseFNm.CStr());
const TStr AggFNm = TStr::Fmt("%s.wcentr", OutFNm.CStr());
FILE *F = fopen(AggFNm.CStr(), "wt");
fprintf(F,"# Node centrality distributions on the directed / undirected graph (as applicable)\n");
fprintf(F,"# Nodes: %d\tEdges: %d\n", WGraph->GetNodes(), WGraph->GetEdges());
fprintf(F,"# NodeId\tWInDegCentr\tWOutDegCentr\tWDegCentr\tWInEigCentr\tWOutEigCentr\tWEigCentr\tWPgRCentr\n");
for (NI = WGraph->BegNI(); NI < WGraph->EndNI(); NI++) {
const int NId = NI.GetId(); fprintf(F, "%d", NId);
const TFltV WDegCentrV = WDegCentrVH.GetDat(NId);
for (VI = WDegCentrV.BegI(); VI < WDegCentrV.EndI(); VI++) { fprintf(F, "\t%f", VI->Val); }
const TFltV WEigCentrV = WEigCentrVH.GetDat(NId);
for (VI = WEigCentrV.BegI(); VI < WEigCentrV.EndI(); VI++) { fprintf(F, "\t%f", VI->Val); }
const double WPgRCentr = WPgRH.GetDat(NId); fprintf(F, "\t%f", WPgRCentr);
fprintf(F, "\n");
}
printf(" DONE\n");
} else {
printf("\nSaving %s.wdeg.centr...", BseFNm.CStr());
//.........这里部分代码省略.........