2
0
mirror of https://github.com/boostorg/graph.git synced 2026-01-19 04:12:11 +00:00

Merge pull request #422 from murraycu/develop-murrayc-examples-modern-cpp-attempt2b

examples: C++11: Use list initialization instead of push_back()
This commit is contained in:
Jeremy W. Murphy
2025-02-20 20:13:07 +11:00
committed by GitHub
5 changed files with 33 additions and 55 deletions

View File

@@ -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);

View File

@@ -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...

View File

@@ -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;

View File

@@ -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);

View File

@@ -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;
}