codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <iostream> #include <vector> #include <memory> #include <cstdlib> template <class T> class Array { T** a; int nn; public: Array(int n) : a(0), nn(n) { a = new T*[nn]; for (int i = 0; i < nn; i++) { a[i] = new T[nn]; for (int j = 0; j < nn; j++) a[i][j] = std::rand(); } } Array(const Array<T>& at) { // aが空だったらメモリ確保 if (!a) { nn = at.nn; a = new T*[nn]; for (int i = 0; i < nn; i++) a[i] = new T[nn]; } for (int i = 0; i < nn; i++) for (int j = 0; j < nn; j++) a[i][j] = at.a[i][j]; } Array<T>& operator=(const Array<T>& at) { // aが空だったらメモリ確保 if (!a) { nn = at.nn; a = new T*[nn]; for (int i = 0; i < nn; i++) a[i] = new T[nn]; } for (int i = 0; i < nn; i++) for (int j = 0; j < nn; j++) a[i][j] = at.a[i][j]; return *this; } ~Array() { for (int i = 0; i < nn; i++) delete[] a[i]; delete[] a; } }; const int N = 2; int main() { std::vector<Array<int> > ai; for (int i = 0; i < N; i++) ai.push_back(Array<int>(5)); }
Private
[
?
]
Run code
Submit