I have gone through BGL documentation and I'm trying to construct a directed graph with the properties below. Even though the documentation mentions bits and pieces, I can't seem to understand how to achieve these properties collectively through BGL. The properties I'm looking for are:
- O(1) access to vertices with some integer/string as key
- O(I) access to incoming or outgoing edges where I is the number of incident edges, i.e. through an adjacency list (O(1) access to edges would be cool, as well, through some key)
- Able to change multiple edge properties, i.e. weight, id, attached Custom data struct
- Able to change multiple vertex properties, i.e. id, attached Custom data structures
- Add/Remove Vertices and Edges
Is there a way to construct a graph through BGL, with all of these properties? A code sample would be appreciated.