Difference between revisions of "Boost"

From ProgrammingExamples
Jump to: navigation, search
(Boost (Generic) Geometry Library)
(Boost Examples)
 
(12 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
The following examples are frequent use cases of parts of the Boost (http://www.boost.org/) library. Each example includes a CMakeLists.txt file so it can be easily compiled.
 
The following examples are frequent use cases of parts of the Boost (http://www.boost.org/) library. Each example includes a CMakeLists.txt file so it can be easily compiled.
  
 +
== Boost Examples ==
 +
* [[CPP/Boost/LexicalCast|lexical_cast - a replacement for std::stringstream]]
 
* [[CPP/Boost/Bimap|Bidirectional (both ways) map]]
 
* [[CPP/Boost/Bimap|Bidirectional (both ways) map]]
 
* [[CPP/Boost/Function|Glorified function pointers (function.hpp and bind.hpp)]]
 
* [[CPP/Boost/Function|Glorified function pointers (function.hpp and bind.hpp)]]
 +
* [[CPP/Boost/ClassFunctionPointer|Function pointers to class functions]]
 
* [[CPP/Boost/Histogram|Create a histogram (accumulator)]]
 
* [[CPP/Boost/Histogram|Create a histogram (accumulator)]]
 
* [[CPP/Boost/Numeric/Matrix|Matrix]]
 
* [[CPP/Boost/Numeric/Matrix|Matrix]]
Line 21: Line 24:
  
 
== Boost Graph Library (BGL) ==
 
== Boost Graph Library (BGL) ==
=== Basics ===
+
The Boost Graph Library is a c++ library for graph theoretic data structures and algorithms. There are several examples here: [[Boost/BGL|Boost Graph Library Examples]]
* [[CPP/Boost/CreateGraph|Create a graph]] - This is the most fundamental process of using BGL - creating a graph. This example explains 3 methods of creating a graph, using adjacency_list directly, and also using the directed_graph and undirected_graph subclasses.
+
* [[CPP/Boost/BGL/IterateEdges|Iterate over all edges in the graph]]
+
* [[CPP/Boost/BGL/EdgeExists|Check if an edge exists]] - If it does, you also get the edge_descriptor
+
* [[CPP/Boost/BGL/CopyAGraph|Copy a graph]]
+
* [[CPP/Boost/BGL/Directed/Weighted|Access an edge]]
+
* [[CPP/Boost/RemoveVertex|Remove a vertex from a graph]]
+
* [[CPP/Boost/RemoveEdge|Remove an edge from a graph]]
+
* [[CPP/Boost/BGL/EdgeProperties|Add properties to edges]]
+
* [[CPP/Boost/BGL/VertexProperties|Add properties to vertices]]
+
* [[CPP/Boost/BGL/BundledProperties|Bundled properties]]
+
* [[CPP/Boost/BGL/AdjacentVertices|Get a list of neighboring (adjacent) vertices]]
+
* [[CPP/Boost/BGL/DirectedGraph|Directed graphs only give access to out edges]]
+
* [[CPP/Boost/BGL/BidirectionalGraph|Bidirectional graphs give access to both in and out edges]]
+
* [[CPP/Boost/BGL/NumberOfNeighbors|Number of incoming, outgoing, and total edges]]
+
* [[CPP/Boost/BGL/BreadthFirstSearch|Breadth first search (BFS with a custom visitor)]]
+
* [[CPP/Boost/BGL/MakeBFSVisitor|Breadth first search with make_bfs_visitor]]
+
* [[CPP/Boost/BGL/DepthFirstSearch|Depth first search (DFS)]]
+
 
+
=== I/O ===
+
* [[CPP/Boost/BGL/ReadGraph|Read a graph from a file]]
+
* [[CPP/Boost/BGL/WriteGraph|Write a graph to a file]]
+
* [[CPP/WishList/Boost/BGL/RelabelInputVertices|Relabel input vertices read from a dot file so they match the labels used in the file]]
+
 
+
=== Algorithms ===
+
 
+
* [[CPP/Boost/BGL/DijkstraDirected|Find the shortest path (Dijkstra) from a specified vertex to all other vertices in a directed graph]]
+
* [[CPP/Boost/BGL/DijkstraUndirected|Find the shortest path (Dijkstra) from a specified vertex to all other vertices in an undirected graph]]
+
* [[CPP/Boost/BGL/DijkstraComputePath|Find the shortest path (Dijkstra) from one specified vertex to another specified vertex in a graph]]
+
* [[CPP/Boost/BGL/BetweennessCentralityClustering|Cluster a graph using betweenness centrality]]
+
 
+
=== Visualization ===
+
 
+
* [[CPP/Boost/BGL/InvisibleEdges|Create a graph with invisible edges]]
+
  
 
=== Wish List ===
 
=== Wish List ===
Line 63: Line 33:
 
* [[CPP/Boost/Geometry/PointInPolygon|Determine if a point is inside of a polygon (within() function)]]
 
* [[CPP/Boost/Geometry/PointInPolygon|Determine if a point is inside of a polygon (within() function)]]
 
* [[CPP/Boost/Geometry/Simplify|Simplify a polyline]]
 
* [[CPP/Boost/Geometry/Simplify|Simplify a polyline]]
 +
* [[CPP/Boost/Geometry/CoordinateConversion|Convert between spherical and Cartesian coordinates]]
 +
 +
== Boost Iterators ==
 +
* [[CPP/Boost/Iterators/IndirectIterator|Access a collection of pointers as if it were a collection of objects]]
 +
 +
== Boost Math Library ==
 +
=== uBLAS ===
 +
* [[CPP/Boost/Math/uBLAS/determinant]] Calculating the determinant of a matrix using boost::numeric::lu_factorize
 +
=== Tools ===
 +
* [[CPP/Boost/Math/Tools/brent_find_minima|brent_find_minima]] Find a bracketed minimum of a function
 +
* [[CPP/Boost/Math/Tools/TOMS748|TOMS748 root finding algorithm]] Find a bracketed root(zero) of a function
 +
 +
== Heap ==
 +
* [[CPP/Boost/Heap/IndirectCompare|Indirect heap]] Sort a heap by values in a property map

Latest revision as of 15:36, 12 May 2015

The following examples are frequent use cases of parts of the Boost (http://www.boost.org/) library. Each example includes a CMakeLists.txt file so it can be easily compiled.

Boost Examples

Boost Graph Library (BGL)

The Boost Graph Library is a c++ library for graph theoretic data structures and algorithms. There are several examples here: Boost Graph Library Examples

Wish List

Examples in this section are either shells or something is wrong with them that must be fixed before they can graduate into real examples.

Boost (Generic) Geometry Library

Boost Iterators

Boost Math Library

uBLAS

Tools

Heap