I code in C++ on Windows, using codeblocks with g++. I have a graph defined as follow (using boost):

struct NodeData{ /*...*/ };
struct EdgeData{ /*...*/ };
typedef adjacency_list<setS, setS, undirectedS, NodeData, EdgeData> MyGraph;
MyGraph G;
This graph is updated iteratively (by adding/deleting some edges/vertices). At each iteration, I want to evaluate the memory space occupied by this graph G. How can I do that ? And what if I compute V = "the size of NodeData" and E = "the size of EdgeData" and at each iteration the memory used by the graph will be proportional to: nbr_vertices * V + nbr_edges * E ?