From 5dbdc5546a80eba3feb21516c4537332154364a0 Mon Sep 17 00:00:00 2001 From: Murray Cumming Date: Wed, 4 May 2016 11:01:15 +0200 Subject: [PATCH] examples: C++11: Use list initialization instead of push_back() --- example/filtered_vec_as_graph.cpp | 15 +++++-------- example/matching_example.cpp | 17 +++++++-------- example/topo-sort1.cpp | 11 ++-------- example/two_graphs_common_spanning_trees.cpp | 23 +++++++------------- example/vector_as_graph.cpp | 22 ++++++++----------- 5 files changed, 33 insertions(+), 55 deletions(-) diff --git a/example/filtered_vec_as_graph.cpp b/example/filtered_vec_as_graph.cpp index 2ec53a22..d6cc52cf 100644 --- a/example/filtered_vec_as_graph.cpp +++ b/example/filtered_vec_as_graph.cpp @@ -45,18 +45,15 @@ int main() B, C, D, - E, - N + E }; const char* name = "ABCDE"; typedef std::vector< std::list< int > > Graph; - Graph g(N); - g[A].push_back(B); - g[A].push_back(C); - g[C].push_back(D); - g[C].push_back(E); - g[D].push_back(E); - g[E].push_back(C); + Graph g = { { B, C }, // A + {}, // B + { D, E }, // C + { E }, // D + { C } }; // E constant_target filter(E); filtered_graph< Graph, constant_target > fg(g, filter); diff --git a/example/matching_example.cpp b/example/matching_example.cpp index a558820d..ccbf1736 100644 --- a/example/matching_example.cpp +++ b/example/matching_example.cpp @@ -25,15 +25,14 @@ int main() const int n_vertices = 18; - std::vector< std::string > ascii_graph; - - ascii_graph.push_back(" 0 1---2 3 "); - ascii_graph.push_back(" \\ / \\ / "); - ascii_graph.push_back(" 4---5 6---7 "); - ascii_graph.push_back(" | | | | "); - ascii_graph.push_back(" 8---9 10---11 "); - ascii_graph.push_back(" / \\ / \\ "); - ascii_graph.push_back(" 12 13 14---15 16 17 "); + std::vector< std::string > ascii_graph + = { " 0 1---2 3 ", + " \\ / \\ / ", + " 4---5 6---7 ", + " | | | | ", + " 8---9 10---11 ", + " / \\ / \\ ", + " 12 13 14---15 16 17 " }; // It has a perfect matching of size 8. There are two isolated // vertices that we'll use later... diff --git a/example/topo-sort1.cpp b/example/topo-sort1.cpp index 52b30ffc..4db2cb3b 100644 --- a/example/topo-sort1.cpp +++ b/example/topo-sort1.cpp @@ -19,16 +19,9 @@ int main() = { "pick up kids from school", "buy groceries (and snacks)", "get cash at ATM", "drop off kids at soccer practice", "cook dinner", "pick up kids from soccer", "eat dinner" }; - const int n_tasks = sizeof(tasks) / sizeof(char*); - std::vector< std::list< int > > g(n_tasks); - g[0].push_back(3); - g[1].push_back(3); - g[1].push_back(4); - g[2].push_back(1); - g[3].push_back(5); - g[4].push_back(6); - g[5].push_back(6); + std::vector< std::list< int > > g + = { { 3 }, { 3, 4 }, { 1 }, { 5 }, { 6 }, { 6 }, {} }; std::deque< int > topo_order; diff --git a/example/two_graphs_common_spanning_trees.cpp b/example/two_graphs_common_spanning_trees.cpp index 1b60fe19..0a209bf4 100644 --- a/example/two_graphs_common_spanning_trees.cpp +++ b/example/two_graphs_common_spanning_trees.cpp @@ -36,22 +36,15 @@ typedef boost::graph_traits< Graph >::edge_iterator edge_iterator; int main(int argc, char** argv) { Graph iG, vG; - vector< edge_descriptor > iG_o; - vector< edge_descriptor > vG_o; + vector< edge_descriptor > iG_o = { boost::add_edge(0, 1, iG).first, + boost::add_edge(0, 2, iG).first, boost::add_edge(0, 3, iG).first, + boost::add_edge(0, 4, iG).first, boost::add_edge(1, 2, iG).first, + boost::add_edge(3, 4, iG).first }; - iG_o.push_back(boost::add_edge(0, 1, iG).first); - iG_o.push_back(boost::add_edge(0, 2, iG).first); - iG_o.push_back(boost::add_edge(0, 3, iG).first); - iG_o.push_back(boost::add_edge(0, 4, iG).first); - iG_o.push_back(boost::add_edge(1, 2, iG).first); - iG_o.push_back(boost::add_edge(3, 4, iG).first); - - vG_o.push_back(boost::add_edge(1, 2, vG).first); - vG_o.push_back(boost::add_edge(2, 0, vG).first); - vG_o.push_back(boost::add_edge(2, 3, vG).first); - vG_o.push_back(boost::add_edge(4, 3, vG).first); - vG_o.push_back(boost::add_edge(0, 3, vG).first); - vG_o.push_back(boost::add_edge(0, 4, vG).first); + vector< edge_descriptor > vG_o = { boost::add_edge(1, 2, vG).first, + boost::add_edge(2, 0, vG).first, boost::add_edge(2, 3, vG).first, + boost::add_edge(4, 3, vG).first, boost::add_edge(0, 3, vG).first, + boost::add_edge(0, 4, vG).first }; vector< bool > inL(iG_o.size(), false); diff --git a/example/vector_as_graph.cpp b/example/vector_as_graph.cpp index f9e785ed..0000a0fc 100644 --- a/example/vector_as_graph.cpp +++ b/example/vector_as_graph.cpp @@ -27,22 +27,18 @@ int main() v, w, x, - y, - N + y }; char name[] = "rstuvwxy"; typedef std::vector< std::list< int > > Graph; - Graph g(N); - g[r].push_back(v); - g[s].push_back(r); - g[s].push_back(r); - g[s].push_back(w); - g[t].push_back(x); - g[u].push_back(t); - g[w].push_back(t); - g[w].push_back(x); - g[x].push_back(y); - g[y].push_back(u); + Graph g = { { v }, // r + { r, r, w }, // s + { x }, // t + { t }, // u + {}, // v + { t, x }, // w + { y }, // x + { u } }; // y boost::print_graph(g, name); return 0; }