daily pastebin goal
31%
SHARE
TWEET

Untitled

a guest Jan 13th, 2018 47 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. namespace MapAllocator
  2. {
  3.   template<typename T>
  4.   T ** allocMap(CGSize size)
  5.   {
  6.     T ** map = (T **)malloc(sizeof(T *) * size.width);
  7.    
  8.     for (int i = 0; i < size.width; i++)
  9.       map[i] = (T *)calloc(sizeof(T), size.height);
  10.    
  11.     return map;    
  12.   }
  13.  
  14.   template<typename T>
  15.   T ** allocMapAndFill(CGSize size, T value)
  16.   {
  17.     if (value == T(0)) return allocMap<T>(size);
  18.    
  19.     T ** map = (T **)malloc(sizeof(T *) * size.width);
  20.    
  21.     for (int i = 0; i < size.width; i++)
  22.     {
  23.       map[i] = (T *)malloc(sizeof(T) * size.height);
  24.      
  25.       for (int j = 0; j < size.height; j++)
  26.         map[i][j] = value;
  27.     }
  28.    
  29.     return map;
  30.   }
  31.  
  32.   template<typename T>
  33.   void  deallocMap(T ** map, CGSize size)
  34.   {
  35.     for (int i = 0; i < size.width; i++)
  36.       free(map[i]);
  37.    
  38.     free(map);
  39.   }
  40.  
  41.   template<typename T>
  42.   T ** copyMap(T ** map, CGSize size)
  43.   {
  44.     T ** newMap = allocMap<T>(size);
  45.     for (int i = 0; i < size.width; i++) {
  46.       for (int j = 0; j < size.height; j++) {
  47.         newMap[i][j] = map[i][j];
  48.       }
  49.     }
  50.    
  51.     return newMap;
  52.   }
  53. }
RAW Paste Data
Top