Skip to content

Commit 8a2d043

Browse files
Merge pull request #422 from murraycu/develop-murrayc-examples-modern-cpp-attempt2b
examples: C++11: Use list initialization instead of push_back()
2 parents d5531e2 + 5dbdc55 commit 8a2d043

5 files changed

+33
-55
lines changed

example/filtered_vec_as_graph.cpp

+6-9
Original file line numberDiff line numberDiff line change
@@ -45,18 +45,15 @@ int main()
4545
B,
4646
C,
4747
D,
48-
E,
49-
N
48+
E
5049
};
5150
const char* name = "ABCDE";
5251
typedef std::vector< std::list< int > > Graph;
53-
Graph g(N);
54-
g[A].push_back(B);
55-
g[A].push_back(C);
56-
g[C].push_back(D);
57-
g[C].push_back(E);
58-
g[D].push_back(E);
59-
g[E].push_back(C);
52+
Graph g = { { B, C }, // A
53+
{}, // B
54+
{ D, E }, // C
55+
{ E }, // D
56+
{ C } }; // E
6057

6158
constant_target filter(E);
6259
filtered_graph< Graph, constant_target > fg(g, filter);

example/matching_example.cpp

+8-9
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,14 @@ int main()
2525

2626
const int n_vertices = 18;
2727

28-
std::vector< std::string > ascii_graph;
29-
30-
ascii_graph.push_back(" 0 1---2 3 ");
31-
ascii_graph.push_back(" \\ / \\ / ");
32-
ascii_graph.push_back(" 4---5 6---7 ");
33-
ascii_graph.push_back(" | | | | ");
34-
ascii_graph.push_back(" 8---9 10---11 ");
35-
ascii_graph.push_back(" / \\ / \\ ");
36-
ascii_graph.push_back(" 12 13 14---15 16 17 ");
28+
std::vector< std::string > ascii_graph
29+
= { " 0 1---2 3 ",
30+
" \\ / \\ / ",
31+
" 4---5 6---7 ",
32+
" | | | | ",
33+
" 8---9 10---11 ",
34+
" / \\ / \\ ",
35+
" 12 13 14---15 16 17 " };
3736

3837
// It has a perfect matching of size 8. There are two isolated
3938
// vertices that we'll use later...

example/topo-sort1.cpp

+2-9
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,9 @@ int main()
1919
= { "pick up kids from school", "buy groceries (and snacks)",
2020
"get cash at ATM", "drop off kids at soccer practice",
2121
"cook dinner", "pick up kids from soccer", "eat dinner" };
22-
const int n_tasks = sizeof(tasks) / sizeof(char*);
2322

24-
std::vector< std::list< int > > g(n_tasks);
25-
g[0].push_back(3);
26-
g[1].push_back(3);
27-
g[1].push_back(4);
28-
g[2].push_back(1);
29-
g[3].push_back(5);
30-
g[4].push_back(6);
31-
g[5].push_back(6);
23+
std::vector< std::list< int > > g
24+
= { { 3 }, { 3, 4 }, { 1 }, { 5 }, { 6 }, { 6 }, {} };
3225

3326
std::deque< int > topo_order;
3427

example/two_graphs_common_spanning_trees.cpp

+8-15
Original file line numberDiff line numberDiff line change
@@ -36,22 +36,15 @@ typedef boost::graph_traits< Graph >::edge_iterator edge_iterator;
3636
int main(int argc, char** argv)
3737
{
3838
Graph iG, vG;
39-
vector< edge_descriptor > iG_o;
40-
vector< edge_descriptor > vG_o;
39+
vector< edge_descriptor > iG_o = { boost::add_edge(0, 1, iG).first,
40+
boost::add_edge(0, 2, iG).first, boost::add_edge(0, 3, iG).first,
41+
boost::add_edge(0, 4, iG).first, boost::add_edge(1, 2, iG).first,
42+
boost::add_edge(3, 4, iG).first };
4143

42-
iG_o.push_back(boost::add_edge(0, 1, iG).first);
43-
iG_o.push_back(boost::add_edge(0, 2, iG).first);
44-
iG_o.push_back(boost::add_edge(0, 3, iG).first);
45-
iG_o.push_back(boost::add_edge(0, 4, iG).first);
46-
iG_o.push_back(boost::add_edge(1, 2, iG).first);
47-
iG_o.push_back(boost::add_edge(3, 4, iG).first);
48-
49-
vG_o.push_back(boost::add_edge(1, 2, vG).first);
50-
vG_o.push_back(boost::add_edge(2, 0, vG).first);
51-
vG_o.push_back(boost::add_edge(2, 3, vG).first);
52-
vG_o.push_back(boost::add_edge(4, 3, vG).first);
53-
vG_o.push_back(boost::add_edge(0, 3, vG).first);
54-
vG_o.push_back(boost::add_edge(0, 4, vG).first);
44+
vector< edge_descriptor > vG_o = { boost::add_edge(1, 2, vG).first,
45+
boost::add_edge(2, 0, vG).first, boost::add_edge(2, 3, vG).first,
46+
boost::add_edge(4, 3, vG).first, boost::add_edge(0, 3, vG).first,
47+
boost::add_edge(0, 4, vG).first };
5548

5649
vector< bool > inL(iG_o.size(), false);
5750

example/vector_as_graph.cpp

+9-13
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,18 @@ int main()
2727
v,
2828
w,
2929
x,
30-
y,
31-
N
30+
y
3231
};
3332
char name[] = "rstuvwxy";
3433
typedef std::vector< std::list< int > > Graph;
35-
Graph g(N);
36-
g[r].push_back(v);
37-
g[s].push_back(r);
38-
g[s].push_back(r);
39-
g[s].push_back(w);
40-
g[t].push_back(x);
41-
g[u].push_back(t);
42-
g[w].push_back(t);
43-
g[w].push_back(x);
44-
g[x].push_back(y);
45-
g[y].push_back(u);
34+
Graph g = { { v }, // r
35+
{ r, r, w }, // s
36+
{ x }, // t
37+
{ t }, // u
38+
{}, // v
39+
{ t, x }, // w
40+
{ y }, // x
41+
{ u } }; // y
4642
boost::print_graph(g, name);
4743
return 0;
4844
}

0 commit comments

Comments
 (0)