polevoi_cpp_2013_spring_lecture_03
.pdf
Динамический массив (реализация)
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 |
