Step 2 (S-7019)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/540/step/2

Step 2 (S-7019) 1.png

[00:00 - 00:15] в данном сегменте мы обсудим основные способы использования начнем с обсуждения способов передачи массивов принца на прошлом семестре мы рассмотрели 1 из таких способов это передаче массива


[00:15 - 00:33] по указателю на начало и размер данном случае для примера давайте рассмотрим функцию поиска элемента в массиве внутри этой функции мы продвигаемся по всему массиву он индексирует


[00:33 - 00:52] элементы по индексу и проверяю каждый элемент на равенство искомому то есть есть некоторые модели который также продает эту функцию которую мы еще в массиве если мы его находим то есть для какого то и выполняется равенство элементы массива соответствующий значениям мы возвращаем есть


[00:52 - 01:08] данную функцию можно переписать немножко в другом стиле представленный ниже в данном случае функция делает тоже самое и 1000 заключается в том что мы принимаем


[01:08 - 01:24] массив не по указателю на начало и размеру а потом указатель 1 указатель указывает на начало массива а сторон указывает на элемент следующий за последним элементом массива


[01:24 - 01:43] как представлен внизу на картинке то есть если бы у нас в массиве было например 10 сегментов то п указывал бы на начало массива а указанный элемент который следующий за концом то есть в принципе это может не быть но


[01:43 - 01:59] тюмень указатель на нем можно просто прибавить к адресу начало массива размер красивый то нам должен иметь следующие запасные соответственно


[01:59 - 02:15] внутри этой функции мы точно так же убегаешь массиву и проверять каждый элемент на равенство искомое значение делаем это уже не по индексу просто перемещались указателем от элементы крыме


[02:15 - 02:31] у 2 представление есть 2 преимущества 1 из них идеологическая дело в том что с похожим синтаксисом работают алгоритмы по стандартной библиотеке си + + но в данный момент мы этого еще не обсуждали поэтому


[02:31 - 02:47] я укажу 2 преимущество в скорости дело в том что если мы посмотрим каким образом происходит проверка условия в 1 случае то здесь кроме не под непосредственной проверке условия


[02:47 - 03:07] то есть непосредственно оператора а проверки на равенство здесь еще выполнять арифметической операцией этической операция спрятана в синтаксисе обращения по индексу как я именно на предыдущей рыночном сегменте запись м от


[03:07 - 03:24] соответствует следующее количество операций мы берем указать прибавляет к нему и разминал то есть на каждой проверке элементы нравимся мы делаем еще некоторые слышали


[03:24 - 03:42] во 2 случае это сражение не нужно просто потому что когда мы здесь сравниваем на равенство были тот это значение указателя оно собственно соответствует значению катей м + и


[03:42 - 04:01] 1 способе передачи массивов в этом 2 способ передачи массивов он сможет работать эффективно важно отметить почему мы передаем в функцию 2 указателя 1 из которых указывает на


[04:01 - 04:20] элемент следующая то концом оси почему например не передаем в качестве указателя на последнее время все дело в том что если бы мы поступали так и передавали указатель на 1 и последний то не был бы способ передать пустой


[04:20 - 04:37] казалось бы зачем пустой массив но оказывается что вы реализации в этом году нам не нужно будет проверять что массив пустой например вот этот код от работает правильно в том числе и в этом случае если мы передадим сюда


[04:37 - 04:56] пустой массив то есть если будет равна равняться тогда данный цикл нет не выполнится и мы сразу же вернет значение но в что соответствует семантике данного данной функции то есть если мы передали пустой массив то никакого нет


[04:56 - 05:05] поэтому используется именно синтаксис в котором 2 указатель указывает на элемент следующей спасли