Unlike feed-forward and feedback network, which does supervised learning, Self organizing maps(SOM) have unsupervised and competitive learning strategy. Supervised learning algorithms such as back propagation algorithm have input vectors and target vectors. We adjust the weights of the neural network till the output vector is same or almost equivalent to the target vector. This means the learning process is supervised from outside. But, on self organizing maps, we employ unsupervised learning strategy. No target vector is required. It employs “winner-take-all” approach. First proposed by Prof. T. Kohonen, it is widely used in wide applications such as image processing, data clustering and visualization, medical image analaysis etc.
I have done coding and written a report about SOM. It is about clustering of similar colors from randomized distribution. Please feel free to get in touch if you like to get the codes.
Looks like there is no default clone methodologies in C++. I found following links hellpful for a way around.
Also, here is a link about design patterns in C++.
One more interesting paper
C++ Patterns : Executing around sequences.