Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

polevoi_cpp_2013_spring_lecture_03

.pdf
Скачиваний:
9
Добавлен:
20.04.2015
Размер:
135.12 Кб
Скачать

Динамический массив (реализация)

struct ArrayD

{

int* m_pData; // данные size_t m_size; // размер

};

16.03.2013

31

Динамический массив (реализация)

struct ArrayS

 

{

 

int* m_pData;

// данные

size_t m_count;

// лог.размер

size_t m_size;

// физ.размер

};

 

16.03.2013

32

Копирование элементов массива

поэлементное

блочное (копирование памяти)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16.03.2013

33

Поэлементное копирование элементов массива

//pDst – начало вставки

//pSrc - источник

for (int i(0); i < size; ++i)

{

pDst[i] = pSrc[i];

}

16.03.2013

34

Блочное копирование элементов массива

#include <cstring>

...

memcpy(reinterpret_cast<char*>(pDsr), reinterpret_cast<char*>(pDsr), nByte);

//memmove

16.03.2013

35

Вставка элемента в массив

• копирование “хвоста”

• копирование элемента

• создание нового

копирование “головы”

уничтожение старого

16.03.2013

36

Удаление элемента из массива

• копирование “хвоста”

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16.03.2013

37

АТД “матрица”

Ма́трица — математический объект, записываемый в виде прямоугольной таблицы чисел и допускающий алгебраические операции (сложение, вычитание, умножение) между ним и другими подобными объектами. Обычно матрицы представляются двумерными (прямоугольными) таблицами.

(0,0)

(1,0)

(1,1)

 

 

 

 

 

(2,0)

 

 

16.03.2013

 

 

38

АТД “матрица”

создание

уничтожение

получение доступа к элементу по индексу (i, j)

получение размера по измерению

изменение размера по измерению

16.03.2013

39

Алгебраические операции

умножение на число

сложение двух матриц

умножение двух матриц

16.03.2013

40