To be on the safe side...
     5 * Ehhez nagyon fontos, hogy az atadott property map inicializalva legyen
 
     6 * minden szobajovo kulcs ertekre, -1 -es ertekkel!
 
    18   template <typename KeyType, typename KeyIntMap>
 
    21     struct VectorElementType {
 
    24       VectorElementType(int _boss, int _count){
 
    29     std::vector<VectorElementType> container;
 
    32     UnionFind(KeyIntMap& _pointmap): pointmap(_pointmap){
 
    36     //Give a component of one point to the structure
 
    37     int addPoint(KeyType u){
 
    38       int _index = container.size();
 
    39       VectorElementType buf(_index,1);
 
    40       container.push_back(buf);
 
    45     //Finds the big boss of u
 
    47       if (pointmap.get(u)==-1){
 
    48 	int whoami = addPoint(u);
 
    49 	pointmap.set(u, whoami);
 
    53 	int emp = pointmap.get(u);
 
    54 	int boss = container[emp].boss;
 
    57 	  boss = container[emp].boss;
 
    63     //Finds u and v in the structures and merges the comopnents, if not equal
 
    64     bool findAndMerge(KeyType u,KeyType v){
 
    77     void mergeInto(int a, int b){
 
    78       container[a].boss = b;
 
    79       container[b].count +=  container[a].count;
 
    83     void unio(int b1, int b2){
 
    84       if (container[b1].count>container[b2].count){