I don't like it. Here is why.

1. You can only use a size_t type as the vertex type. What about strings? 2. The distinction between directed and undirected graphs is made with an boolean type parameter? Why not an enum? Better yet, why not just use interfaces? (You are already using classes and garbage collected memory.) 3. I have to control the graph's capacity manually, and I can't use arbitrary numbers for edges.
4. Adding an edge doesn't add vertices.

My most common use of graphs is to start from nothing, build from adding edges arbitrarily, usually from IDs which may be integers, and may be strings, and then use graph algorithms to gain some understanding of the relation between objects mapped to these IDs. With this library, this will be difficult or impossible.

Reply via email to