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:
@@ -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);
|
||||
|
||||
@@ -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...
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user