Greetings code-gurus!

I am writing an algorithm that connects, for instance node\_A of Region\_A with node\_D of Region\_D. (node\_A and node\_D are just integers). There could be 100k+ such nodes. 

Assume that the line segment between A and D passes through a number of other regions, B, C, Z . There will be a maximum of 20 regions in between these two nodes. 

Each region has its own properties that may vary according to the connection A-D. I want to access these at a later point of time. 

I am looking for a good data structure (perhaps an STL container) that can hold this information for a particular connection. 

For example, for connection A - D I want to store : 

```
node_A, 
node_D, 
crosssectional area (computed elsewhere) , 
regionB, 
regionB_thickness, 
regionB other properties, 
regionC, ....

```

The data can be double , int , string and could also be an array /vector etc. 

1. First I considered creating structs or classes for regionB, regionC etc . 
But, for each connection A-D, certain properties like thickness of the region through which this connection passes are different. 
There will only be 3 or 4 different things I need to store pertaining to a region. 
Which data structure should I consider here (any STL container like vector?) Could you please suggest one? (would appreciate a code snippet)
2. To access a connection between nodes A-D, I want to make use of int node\_A (an index). 
This probably means I need to use a hashmap or similar data structure. 
Can anyone please suggest a good data structure in C++ that can efficiently 
hold this sort of data for connection A -D described above? (would appreciate a code snippet)

thank you! 

***UPDATE***
for some reasons, I can not make use of pkgs like boost. So want to know if I can use any libraries from STL