[ create a new paste ] login | about

Link: http://codepad.org/LwR70a8Q    [ raw code | output | fork ]

C++, pasted on Nov 17:
template <class T>
class Arr2D {
public:
  Arr2D(size_t n, size_t m)
     : m_(m)
  {
    Arr.resize(n*m);
  }
  T* operator[](size_t i){return &Arr[i*m_];}
  const T* operator[](size_t i) const {return &Arr[i*m_];}
private:
  std::vector<T> Arr;
  size_t m_;
};

int main()
{	
  const size_t xdim = 4;
  const size_t ydim = 7;
  Arr2D<std::vector<int> >myarr(xdim,ydim);
  for(size_t y=0;y<ydim;++y)
  {
    for(size_t x=0;x<xdim;++x)
    {
      cout << "(" << x << "," << y << ")\t";
      size_t zdim = rand()%15+1;
      for(size_t z=0;z<zdim;++z)
      {
        myarr[x][y].push_back(rand()%1000);
        cout << setw(3)<< myarr[x][y][z] << " ";
      }
      cout << endl;
    }
  }
}


Output:
(0,0)	886 777 915 793 335 386 492 649 421 362  27 690  59 763 
(1,0)	540 426 
(2,0)	736 211 368 567 429 782 530 862 
(3,0)	 67 135 929 802  22  58  69 167 393 456  11  42 229 373 
(0,1)	919 784 537 198 324 315 370 
(1,1)	526  91 980 956 873 862 170 996 281 
(2,1)	925 
(3,1)	327 336 505 846 729 313 857 124 895 582 545 814 367 434 364 
(0,2)	750  87 808 276 
(1,2)	788 584 403 651 754 399 932  60 676 
(2,2)	739  12 226 586 
(3,2)	539 795 570 434 378 467 601  97 902 317 
(0,3)	652 756 301 280 286 441 865 689 444 619 440 729  31 
(1,3)	 97 771 481 675 709 927 567 856 
(2,3)	353 586 965 
(3,3)	683 219 
(0,4)	528 871 732 829 503  19 270 368 708 715 340 149 796 723 618 
(1,4)	846 451 921 555 379 488 764 228 841 350 193 
(2,4)	 34 764 124 914 987 856 743 491 227 365 859 
(3,4)	432 551 
(0,5)	228 275 407 
(1,5)	121 858 395  29 237 235 793 818 428 143 
(2,5)	928 529 776 404 443 763 613 
(3,5)	606 840 904 818 128 688 369 917 917 
(0,6)	324 743 470 183 490 499 772 
(1,6)	644 590 505 139 954 786 
(2,6)	 82 542 464 197 507 355 804 348 611 622 
(3,6)	299 343 746 568 


Create a new paste based on this one


Comments: