, , .
, , , . C ++ "typedef". , , : , .. Unique_ptr, , typedef , . , , .
, , , , . ++ 11, "using": http://en.cppreference.com/w/cpp/language/type_alias. , !
. "test_dynamic_2darray1" 10x10. , 100 , .
size_t destructor_count = 0;
class MyClass {
public:
~MyClass() {
std::cout << "Destructor call #" << ++destructor_count << std::endl;
}
};
typedef std::unique_ptr<MyClass[]> ManagedC;
void test_dynamic_2darray1() {
size_t dimension1 = 10, dimension2 = 10;
auto managed_array = std::unique_ptr<ManagedC[]>(new ManagedC[dimension1]);
for (size_t i = 0; i < dimension1; ++i)
managed_array[i] = ManagedC(new MyClass[dimension2]);
}
, , :
void test_dynamic_2darray2() {
size_t dimension1 = 10, dimension2 = 10;
auto simple_array = new MyClass*[dimension1];
for (size_t i = 0; i < dimension1; ++i)
simple_array[i] = new MyClass[dimension2];
}
, !:) , , - ! , : http://frankriesecodingblog.blogspot.com/2015/01/performance-of-dynamic-multi.html. , .
, : int . , , , . , size_t. ? , 64- "int" 32 , , size_t, 64 . int , 32- 64- . , , , , , ptrdiff_t.