1 00:00:00,000 --> 00:00:01,000 [Powered by Google Translate] [Члан 6] [Пријатнији] 2 00:00:01,000 --> 00:00:04,000 [Роб Бовден] [Универзитет Харвард] 3 00:00:04,000 --> 00:00:09,000 [Ово је ЦС50.] [ЦС50.ТВ] 4 00:00:09,000 --> 00:00:11,000 >> Можемо кренути на нашој секцији питања. 5 00:00:11,000 --> 00:00:17,000 Сам послао УРЛ за простор пре. 6 00:00:17,000 --> 00:00:22,000 Почетак дела питања рећи: 7 00:00:22,000 --> 00:00:26,000 очигледно нисам у потпуности унсицк-је веома лако питање 8 00:00:26,000 --> 00:00:28,000 да само што се Валгринд? 9 00:00:28,000 --> 00:00:30,000 Шта валгринд ради? 10 00:00:30,000 --> 00:00:34,000 Свако жели да каже шта валгринд ради? 11 00:00:34,000 --> 00:00:36,000 [Студентски] Проверава цури меморија. 12 00:00:36,000 --> 00:00:41,000 Да, валгринд је општи меморије правописа. 13 00:00:41,000 --> 00:00:44,000 То, на крају, каже вам ако имате меморије цурења, 14 00:00:44,000 --> 00:00:49,000 која је углавном оно што ми га користе за, јер ако желиш да 15 00:00:49,000 --> 00:00:54,000 раде добро у проблему сету или ако желите да 16 00:00:54,000 --> 00:00:59,000 добити на великом броду, потребно је да уопште нема цурења меморије, 17 00:00:59,000 --> 00:01:01,000 а у случају да имате меморијску цурење које не можете да нађете, 18 00:01:01,000 --> 00:01:04,000 Такође имајте на уму да увек када отворите датотеку 19 00:01:04,000 --> 00:01:07,000 а ако га не затворите, то је осипање меморије. 20 00:01:07,000 --> 00:01:10,000 >> Многи људи су у потрази за неке чвор да не ослобађа 21 00:01:10,000 --> 00:01:15,000 када стварно нису затворили речник у првом кораку. 22 00:01:15,000 --> 00:01:19,000 Она такође говори ако имате било неважеће чита или пише, 23 00:01:19,000 --> 00:01:22,000 што значи да ако покушате да подесите вредност 24 00:01:22,000 --> 00:01:26,000 то је ван краја гомиле и не деси сегменту грешке 25 00:01:26,000 --> 00:01:30,000 али валгринд га ухвати, као што не би заправо требало да буде тамо пише, 26 00:01:30,000 --> 00:01:33,000 па дефинитивно не би требало да има било који од оних било. 27 00:01:33,000 --> 00:01:38,000 Како се користи Валгринд? 28 00:01:38,000 --> 00:01:42,000 Како се користи Валгринд? 29 00:01:42,000 --> 00:01:45,000 >> То је опште питање 30 00:01:45,000 --> 00:01:49,000 некако га покрените и погледајте на излазу. 31 00:01:49,000 --> 00:01:51,000 Излаз је оптеретимо много пута. 32 00:01:51,000 --> 00:01:54,000 Ту је и забава грешке где ако имате неке страшно погрешно 33 00:01:54,000 --> 00:01:59,000 дешава у петљи, онда ће се на крају рећи, "Пут превише грешака. 34 00:01:59,000 --> 00:02:03,000 Ја ћу зауставити бројање сада. " 35 00:02:03,000 --> 00:02:08,000 То је у основи текстуални излаз који треба да анализирамо. 36 00:02:08,000 --> 00:02:13,000 На крају, он ће вам рећи било какво цурење меморије које имате, 37 00:02:13,000 --> 00:02:16,000 колико блокова, што може бити корисно, јер 38 00:02:16,000 --> 00:02:20,000 ако је један блок унфреед, онда је обично лакше да нађу 39 00:02:20,000 --> 00:02:23,000 од 1.000 блокова унфреед. 40 00:02:23,000 --> 00:02:26,000 1.000 блокова унфреед вероватно значи да не ослобађа 41 00:02:26,000 --> 00:02:30,000 Ваши повезане листе адекватно или нешто. 42 00:02:30,000 --> 00:02:32,000 То је Валгринд. 43 00:02:32,000 --> 00:02:35,000 >> Сада имамо део питања, 44 00:02:35,000 --> 00:02:38,000 које не треба да преузмете. 45 00:02:38,000 --> 00:02:41,000 Можете да кликнете на моје име и повуците их у простору. 46 00:02:41,000 --> 00:02:44,000 Сада кликните на мени. 47 00:02:44,000 --> 00:02:46,000 Ревизија 1 ће бити скуп, који смо први пут радили. 48 00:02:46,000 --> 00:02:55,000 Ревизија 2 ће бити перчин, и ревизија 3 ће бити појединачно повезана листа. 49 00:02:55,000 --> 00:02:58,000 Полазак са нашим стек. 50 00:02:58,000 --> 00:03:02,000 Као што овде пише, стек је један од најосновнијих, 51 00:03:02,000 --> 00:03:07,000 основне структуре података у рачунарству. 52 00:03:07,000 --> 00:03:11,000 Веома прототип пример је 53 00:03:11,000 --> 00:03:13,000 стек од носача у трпезарији. 54 00:03:13,000 --> 00:03:16,000 То је у суштини увек када се упознао са стека, 55 00:03:16,000 --> 00:03:20,000 неко ће рећи, "Ох, као гомилу касета." 56 00:03:20,000 --> 00:03:22,000 Ви стек лежишта горе. 57 00:03:22,000 --> 00:03:24,000 Онда када одете да се повуче послужавник, 58 00:03:24,000 --> 00:03:31,000 Први касета која је добијање извукао је последњи који је стављен на стек. 59 00:03:31,000 --> 00:03:34,000 Стек је такође попут каже овде- 60 00:03:34,000 --> 00:03:37,000 имамо сегмент меморије назива стек. 61 00:03:37,000 --> 00:03:40,000 А зашто се зове стек? 62 00:03:40,000 --> 00:03:42,000 >> Јер као структура стек података, 63 00:03:42,000 --> 00:03:46,000 она гура и искочи стек оквире на стек, 64 00:03:46,000 --> 00:03:53,000 где стек оквири су као специфичном позиву функције. 65 00:03:53,000 --> 00:03:57,000 И као димњак, увек ћете морати да се врате 66 00:03:57,000 --> 00:04:03,000 од позива функције пре него што можете да добијете доле у ​​нижим стека оквире поново. 67 00:04:03,000 --> 00:04:08,000 Не можете имати главну позива фоо позива Бар и Бар повратак у главни директно. 68 00:04:08,000 --> 00:04:14,000 То је увек мора да прати правилан стек гура и кокичавости. 69 00:04:14,000 --> 00:04:18,000 Две операције, као што сам рекао, су притисак и поп. 70 00:04:18,000 --> 00:04:20,000 То су универзалне термини. 71 00:04:20,000 --> 00:04:26,000 Требало би да знате пусх и поп у смислу димњацима без обзира на све. 72 00:04:26,000 --> 00:04:28,000 Видећемо редови су некако другачије. 73 00:04:28,000 --> 00:04:32,000 То није заиста имају универзални термин, али притисак и поп су универзални за димњацима. 74 00:04:32,000 --> 00:04:34,000 Пусх се само стави на стек. 75 00:04:34,000 --> 00:04:37,000 Поп је скинути штос. 76 00:04:37,000 --> 00:04:43,000 А ми овде имамо типедеф струцт штос 77 00:04:43,000 --> 00:04:46,000 тако да имамо карактер ** жице. 78 00:04:46,000 --> 00:04:51,000 Немој да плаши било **. 79 00:04:51,000 --> 00:04:54,000 Ово ће завршити као низ стрингова 80 00:04:54,000 --> 00:04:58,000 или низ показивача на знакова, где 81 00:04:58,000 --> 00:05:00,000 показивачи на ликова имају тенденцију да буду ниске. 82 00:05:00,000 --> 00:05:05,000 То не мора да буде жице, али овде, они ће бити ниске. 83 00:05:05,000 --> 00:05:08,000 >> Имамо низ стрингова. 84 00:05:08,000 --> 00:05:14,000 Имамо величину, која представља колико елементи су тренутно на стек, 85 00:05:14,000 --> 00:05:19,000 и онда имамо капацитет, који је колико елементи могу бити на стеку. 86 00:05:19,000 --> 00:05:22,000 Капацитет треба кренути као нешто веће од 1, 87 00:05:22,000 --> 00:05:27,000 али величина ће кренути као 0. 88 00:05:27,000 --> 00:05:36,000 Сада, у основи постоје три различита начина на које могу да се сетим гомиле. 89 00:05:36,000 --> 00:05:39,000 Па, вероватно има више, али два главна начина су 90 00:05:39,000 --> 00:05:43,000 можете га спроведе помоћу низа, или можете га спроведе помоћу повезане листе. 91 00:05:43,000 --> 00:05:48,000 Повезане листе су врста тривијалне да штекова из. 92 00:05:48,000 --> 00:05:51,000 Веома је лако направити гомилу користећи повезане листе, 93 00:05:51,000 --> 00:05:55,000 па ево, ми ћемо направити гомилу помоћу низова, 94 00:05:55,000 --> 00:05:59,000 а затим помоћу низова, такође постоје два начина на које можете размислити о томе. 95 00:05:59,000 --> 00:06:01,000 Раније, кад сам рекао да имамо капацитет за стек, 96 00:06:01,000 --> 00:06:04,000 тако да може да стане један елемент на стек. 97 00:06:04,000 --> 00:06:09,000 >> Један начин на који то може да се деси јесте чим сте погодили 10 елемената, онда сте урадили. 98 00:06:09,000 --> 00:06:13,000 Ви можда знате да постоји горња граница од 10 ствари на свету 99 00:06:13,000 --> 00:06:16,000 да никада неће имати више од 10 ствари на стек, 100 00:06:16,000 --> 00:06:20,000 у ком случају можете имати горњу границу од величине вашег стека. 101 00:06:20,000 --> 00:06:23,000 Или сте могли да твој стацк бити неограничен, 102 00:06:23,000 --> 00:06:27,000 али ако радите низ, што значи да сваки пут када ударио 10 елемената, 103 00:06:27,000 --> 00:06:29,000 онда ћеш морати да порасте на 20 елемената, а када кликнете 20 елемената, 104 00:06:29,000 --> 00:06:33,000 ћеш морати да развију своје низ од 30 елемената или 40 елемената. 105 00:06:33,000 --> 00:06:37,000 Ти ћеш морати да повећа капацитет, што је оно што ћемо да урадимо овде. 106 00:06:37,000 --> 00:06:40,000 Сваки пут када достигну максималну величину наше стек, 107 00:06:40,000 --> 00:06:46,000 кад гурамо нешто друго, ми ћемо морати да се повећа капацитет. 108 00:06:46,000 --> 00:06:50,000 Ево, ми смо притисак проглашен Боол притиском (цхар * стр). 109 00:06:50,000 --> 00:06:54,000 Цхар * стр је стринг који смо гурају на стек, 110 00:06:54,000 --> 00:06:58,000 и воид само каже да ли смо успели или није. 111 00:06:58,000 --> 00:07:00,000 >> Како да не успемо? 112 00:07:00,000 --> 00:07:04,000 Шта је једини околност да можете мислити 113 00:07:04,000 --> 00:07:07,000 где бисмо треба да се врате лаж? 114 00:07:07,000 --> 00:07:09,000 Да. 115 00:07:09,000 --> 00:07:12,000 [Студентски] Ако је пуна и ми смо помоћу повезати имплементацију. 116 00:07:12,000 --> 00:07:17,000 Да, па како ћемо дефинисати, он је одговорио 117 00:07:17,000 --> 00:07:23,000 ако је пуна и ми смо помоћу ограничено спровођење. 118 00:07:23,000 --> 00:07:26,000 Онда смо дефинитивно вратити лажна. 119 00:07:26,000 --> 00:07:31,000 Чим смо погодили 10 ствари у низу, не можемо стати 11, па смо се вратили лажна. 120 00:07:31,000 --> 00:07:32,000 Шта ако је неспутана? Да. 121 00:07:32,000 --> 00:07:38,000 Ако не можете да проширите палету из неког разлога. 122 00:07:38,000 --> 00:07:43,000 Да, тако је меморија ограничен ресурс, 123 00:07:43,000 --> 00:07:51,000 и на крају, ако се држимо ствари гурају на стацк изнова и изнова, 124 00:07:51,000 --> 00:07:54,000 ћемо покушати да издвоје већи спектар да се уклопи 125 00:07:54,000 --> 00:07:59,000 већи капацитет, а маллоц или шта год ми користимо ће вратити фалсе. 126 00:07:59,000 --> 00:08:02,000 Па, маллоц ће се вратити нулл. 127 00:08:02,000 --> 00:08:05,000 >> Запамтите, сваки пут сте се икада звати маллоц, требало би да провере да ли је то 128 00:08:05,000 --> 00:08:12,000 враћа нулл иначе да је исправност одбитак. 129 00:08:12,000 --> 00:08:17,000 Пошто желимо да имамо неограничену штос 130 00:08:17,000 --> 00:08:21,000 једини случај да ћемо се вратити фалсе је ако покушамо да 131 00:08:21,000 --> 00:08:26,000 повећати капацитет и маллоц или шта год даје лажна. 132 00:08:26,000 --> 00:08:30,000 Онда поп нема аргумената, 133 00:08:30,000 --> 00:08:37,000 и враћа ниску која се налази на врху стека. 134 00:08:37,000 --> 00:08:41,000 Шта год да је недавно гурнуо на стек је оно поп враћа, 135 00:08:41,000 --> 00:08:44,000 и такође га уклања са стека. 136 00:08:44,000 --> 00:08:50,000 И приметите да се враћа нулл ако не постоји ништа на стек. 137 00:08:50,000 --> 00:08:53,000 Увек је могуће да је стек празан. 138 00:08:53,000 --> 00:08:55,000 У Јави, ако сте навикли на то, или другим језицима, 139 00:08:55,000 --> 00:09:01,000 покушавајући да искочи из празног стека може изазвати изузетак или тако нешто. 140 00:09:01,000 --> 00:09:09,000 >> Али у Ц, нулл је врста много случајева како руковати ове проблеме. 141 00:09:09,000 --> 00:09:13,000 Враћајући ништавним је како ћемо да значи да стек је празан. 142 00:09:13,000 --> 00:09:16,000 Смо навели код који ће тестирати функционалност вашег стацк-а, 143 00:09:16,000 --> 00:09:19,000 имплементирати пусх и поп. 144 00:09:19,000 --> 00:09:23,000 То неће бити много кода. 145 00:09:23,000 --> 00:09:40,000 Хоћу-заправо, пре него што то урадимо, наговештај, наговештај- 146 00:09:40,000 --> 00:09:44,000 ако нисте видели, маллоц није једина функција 147 00:09:44,000 --> 00:09:47,000 да алоцира меморију на гомили за тебе. 148 00:09:47,000 --> 00:09:51,000 Постоји породица аллоц функција. 149 00:09:51,000 --> 00:09:53,000 Први је маллоц, који сте ви навикли. 150 00:09:53,000 --> 00:09:56,000 Затим, ту је цаллоц, који ради исту ствар као и маллоц, 151 00:09:56,000 --> 00:09:59,000 али ће све нула за вас. 152 00:09:59,000 --> 00:10:04,000 Ако сте икада желели да поставите све да нулл после маллоцинг нешто 153 00:10:04,000 --> 00:10:06,000 Требало је само користили цаллоц на првом месту, уместо писања 154 00:10:06,000 --> 00:10:09,000 за петље до нуле из цео блок меморије. 155 00:10:09,000 --> 00:10:15,000 >> Реаллоц је као маллоц и има доста посебним случајевима, 156 00:10:15,000 --> 00:10:19,000 али у суштини оно што ради је реаллоц 157 00:10:19,000 --> 00:10:24,000 потребно је показивач који је већ додељен. 158 00:10:24,000 --> 00:10:27,000 Реаллоц је функција коју желите да обраћају пажњу на овде. 159 00:10:27,000 --> 00:10:31,000 Потребно је показивач који је већ вратио из маллоц. 160 00:10:31,000 --> 00:10:35,000 Рецимо да затражи од маллоц показивач од 10 бајта. 161 00:10:35,000 --> 00:10:38,000 Касније сте схватили сте желели 20 бајта, 162 00:10:38,000 --> 00:10:42,000 па ви називате реаллоц тог показивача са 20 бајта, 163 00:10:42,000 --> 00:10:47,000 и реаллоц ће аутоматски копирају у свему за вас. 164 00:10:47,000 --> 00:10:51,000 Ако само поново позвао маллоц, као да имам блок од 10 бајта. 165 00:10:51,000 --> 00:10:53,000 Сада треба блок од 20 бајта, 166 00:10:53,000 --> 00:10:58,000 па ако маллоц 20 бајтова, онда морам да ручно копирате преко 10 бајта из прве ствар 167 00:10:58,000 --> 00:11:01,000 у другој ствари, а онда бесплатно прва ствар. 168 00:11:01,000 --> 00:11:04,000 Реаллоц ће се побринути за тебе. 169 00:11:04,000 --> 00:11:11,000 >> Обавештење потпис ће бити неважећи * 170 00:11:11,000 --> 00:11:15,000 који је само враћа показивач на блоку меморије, 171 00:11:15,000 --> 00:11:17,000 онда воид * птр. 172 00:11:17,000 --> 00:11:22,000 Мозете мислити о воид * као генерички показивач. 173 00:11:22,000 --> 00:11:27,000 Генерално, никад се баве воид *, 174 00:11:27,000 --> 00:11:30,000 али маллоц се враћају воид *, а онда се користе само као 175 00:11:30,000 --> 00:11:34,000 То је заправо ће бити знак *. 176 00:11:34,000 --> 00:11:37,000 Претходни воид * који је вратио маллоц 177 00:11:37,000 --> 00:11:41,000 сада ће бити донет до реаллоц, а затим величине 178 00:11:41,000 --> 00:11:49,000 је нови број бајтова желите да издвоји, тако да ваш нови капацитети. 179 00:11:49,000 --> 00:11:57,000 Даћу вам пар минута, и да је у нашем простору. 180 00:11:57,000 --> 00:12:02,000 Почните са ревизији 1. 181 00:12:16,000 --> 00:12:21,000 Ја ћу вас заустави после отприлике надам довољно времена да спроведе воки, 182 00:12:21,000 --> 00:12:24,000 и онда ћу ти дати једну паузу да радим поп. 183 00:12:24,000 --> 00:12:27,000 Али то заиста није толико код уопште. 184 00:12:27,000 --> 00:12:35,000 Највећи број је вероватно шири ствари, проширење капацитета. 185 00:12:35,000 --> 00:12:39,000 Ок, нема притисак да се у потпуности ради, 186 00:12:39,000 --> 00:12:47,000 али докле год се осећате као да сте на правом путу, то је добро. 187 00:12:47,000 --> 00:12:53,000 >> Да ли неко има било код оне осећају пријатно са мном вуче горе? 188 00:12:53,000 --> 00:12:59,000 Да, хоћу, али не неко има било код могу повући горе? 189 00:12:59,000 --> 00:13:05,000 Ок, можете да почнете, сачувајте га, шта год да је? 190 00:13:05,000 --> 00:13:09,000 Увек заборавим тај корак. 191 00:13:09,000 --> 00:13:15,000 Ок, гледајући притиском, 192 00:13:15,000 --> 00:13:18,000 Не желите да објасните свој код? 193 00:13:18,000 --> 00:13:24,000 [Студентски] Пре свега, ја сам повећао величину. 194 00:13:24,000 --> 00:13:28,000 Претпостављам можда сам требао да-ионако сам повећао величину, 195 00:13:28,000 --> 00:13:31,000 и ја видим да је то мање од капацитета. 196 00:13:31,000 --> 00:13:36,000 И ако је мањи од капацитета, додам да низ који смо већ имамо. 197 00:13:36,000 --> 00:13:42,000 А ако није, ја помножите капацитета са 2, 198 00:13:42,000 --> 00:13:50,000 и ја преусмјерити ниске низ у нешто са већом капацитета величине сада. 199 00:13:50,000 --> 00:13:55,000 И онда, ако то не успе, ја кажем корисника и вратили лажна, 200 00:13:55,000 --> 00:14:04,000 и ако је то у реду, онда сам ставио жицу у новом месту. 201 00:14:04,000 --> 00:14:07,000 >> [Роб Б.] приметити и то да се овде користи лепу над битовима оператера 202 00:14:07,000 --> 00:14:09,000 да помножити 2. 203 00:14:09,000 --> 00:14:11,000 Запамтите, лева смена увек ће бити помножена 2. 204 00:14:11,000 --> 00:14:15,000 Право промена је подељен са 2 док се сећате да то значи 205 00:14:15,000 --> 00:14:18,000 поделите са 2 као цео број подељен са 2. 206 00:14:18,000 --> 00:14:20,000 То може скратити на 1 овде или тамо. 207 00:14:20,000 --> 00:14:26,000 Али промена је оставио 1 је увек ће бити помножена са 2, 208 00:14:26,000 --> 00:14:32,000 осим ако прекорачење границе на цео број, а онда неће бити. 209 00:14:32,000 --> 00:14:34,000 Страна коментар. 210 00:14:34,000 --> 00:14:39,000 Волим да радим, ово неће променити кодирање никакав начин, 211 00:14:39,000 --> 00:14:48,000 али ја волим да радим нешто овако. 212 00:14:48,000 --> 00:14:51,000 То је заправо ће учинити нешто дуже. 213 00:15:04,000 --> 00:15:08,000 Можда ово није савршен случај да се покаже ово, 214 00:15:08,000 --> 00:15:14,000 али ја бих да га сегмент у овим блоковима, 215 00:15:14,000 --> 00:15:17,000 ок, ако је ово ако се деси, онда ћу да урадим нешто, 216 00:15:17,000 --> 00:15:19,000 и онда је функција ради. 217 00:15:19,000 --> 00:15:22,000 Не треба онда да помицати очи скроз доле у ​​функцији 218 00:15:22,000 --> 00:15:25,000 да види шта се дешава после другог. 219 00:15:25,000 --> 00:15:27,000 То је ако ово ако се деси, онда ћу само вратити. 220 00:15:27,000 --> 00:15:30,000 Она такође има лепу додатну корист од свега мимо ове 221 00:15:30,000 --> 00:15:33,000 сада померена једном отишао. 222 00:15:33,000 --> 00:15:40,000 Ја више не треба, ако сте икада у близини смешно дуге линије, 223 00:15:40,000 --> 00:15:45,000 онда та 4 бајта може да помогне, али и више лево нешто, 224 00:15:45,000 --> 00:15:48,000 мање осећате преплављени, ако желите, у реду, морам да се сетим 225 00:15:48,000 --> 00:15:53,000 Ја тренутно сам у вхиле петље унутар једног другог унутрасњости за петљу. 226 00:15:53,000 --> 00:15:58,000 Било где можете да урадите одмах да овај повратак, некако изгледа. 227 00:15:58,000 --> 00:16:05,000 То је потпуно необавезно и не очекује се ни на који начин. 228 00:16:05,000 --> 00:16:12,000 >> [Студентски] Ако буде величине - у Фаил стању? 229 00:16:12,000 --> 00:16:19,000 Фаил услов овде нисмо успели да реаллоц, тако да. 230 00:16:19,000 --> 00:16:22,000 Запазите како је у стању успети, вероватно, 231 00:16:22,000 --> 00:16:26,000 уколико касније смо бесплатне ствари, увек идемо на пропаст 232 00:16:26,000 --> 00:16:29,000 без обзира колико пута ћемо покушати да гура нешто. 233 00:16:29,000 --> 00:16:32,000 Ако наставимо да гура, чувамо увецава величину, 234 00:16:32,000 --> 00:16:36,000 иако ми не стављате ништа на стеку. 235 00:16:36,000 --> 00:16:39,000 Обично ми не повећавати величину све док 236 00:16:39,000 --> 00:16:43,000 након успешно смо га ставили на гомилу. 237 00:16:43,000 --> 00:16:50,000 Ми бисмо то урадили, кажу, било овде и овде. 238 00:16:50,000 --> 00:16:56,000 И онда, уместо да с.сизе ≤ капацитет, то је мање од капацитета, 239 00:16:56,000 --> 00:17:01,000 само зато што смо се преселили у коме је све био. 240 00:17:01,000 --> 00:17:07,000 >> И запамтите, једино место које смо можда могли вратити фалсе 241 00:17:07,000 --> 00:17:14,000 је овде, где реаллоц враћа нулл, 242 00:17:14,000 --> 00:17:19,000 а ако се деси да се сетите стандардну грешку, 243 00:17:19,000 --> 00:17:22,000 можда можете размислити овај случај где желите да одштампате стандардну грешку, 244 00:17:22,000 --> 00:17:26,000 па иф стдерр, уместо да само штампање директно на стандардну напоље. 245 00:17:26,000 --> 00:17:31,000 Опет, то није очекивање, али ако је то грешка, 246 00:17:31,000 --> 00:17:41,000 упишите принтф, онда ћете можда желети да га штампате на стандардном грешком уместо стандардног излаза. 247 00:17:41,000 --> 00:17:44,000 >> Свако има нешто да примети? Да. 248 00:17:44,000 --> 00:17:47,000 [Студентски] Да ли ићи преко [нечујан]? 249 00:17:47,000 --> 00:17:55,000 [Роб Б.] Да, стварна бинаринесс тога или шта је то? 250 00:17:55,000 --> 00:17:57,000 [Студентски] Па то помножити са 2? 251 00:17:57,000 --> 00:17:59,000 [Роб Б.] Да, у суштини. 252 00:17:59,000 --> 00:18:11,000 У бинарном земљи, увек имамо низ цифара. 253 00:18:11,000 --> 00:18:22,000 Прелазак овај лево од 1 суштини умеће овде на десној страни. 254 00:18:22,000 --> 00:18:25,000 Назад на ово, само сећајући се да је све у бинарном 255 00:18:25,000 --> 00:18:28,000 је снага 2, тако да ово представља 2 до 0, 256 00:18:28,000 --> 00:18:30,000 ово 2 на 1, овај 2 на 2. 257 00:18:30,000 --> 00:18:33,000 Убацивањем сада 0 на десну страну, само пребаци све готово. 258 00:18:33,000 --> 00:18:38,000 Оно се користи да буде 2 до 0 је сада 2 на 1, 2 је у 2. 259 00:18:38,000 --> 00:18:41,000 Са десне стране да убаци 260 00:18:41,000 --> 00:18:44,000 нужно ће бити 0, 261 00:18:44,000 --> 00:18:46,000 што има смисла. 262 00:18:46,000 --> 00:18:49,000 Ако сте икада помножите број са 2, то неће завршити чудно, 263 00:18:49,000 --> 00:18:54,000 па 2 до 0 мјесту треба да буде 0, 264 00:18:54,000 --> 00:18:59,000 и то је оно што сам пола упозоравао пре него што је, ако се не деси да се помери 265 00:18:59,000 --> 00:19:01,000 иза броја битова у цео број, 266 00:19:01,000 --> 00:19:04,000 онда 1 ће се завршити одлутају. 267 00:19:04,000 --> 00:19:10,000 То је једина брига ако вам се деси да се бави заиста великих капацитета. 268 00:19:10,000 --> 00:19:15,000 Али, у том тренутку, онда имате посла са низом милијардама ствари, 269 00:19:15,000 --> 00:19:25,000 који не може да стане у меморију свеједно. 270 00:19:25,000 --> 00:19:31,000 >> Сада можемо доћи до попа, који је још лакше. 271 00:19:31,000 --> 00:19:36,000 Могли не свиђа, ако вам се деси да се појави на гомилу, 272 00:19:36,000 --> 00:19:38,000 а сада сте на пола капацитета поново. 273 00:19:38,000 --> 00:19:42,000 Могли реаллоц да смањи количину меморије коју имате, 274 00:19:42,000 --> 00:19:47,000 али не морате да бринете о томе, тако да је једини реаллоц случај ће бити 275 00:19:47,000 --> 00:19:50,000 расте меморије, никада смањује меморију, 276 00:19:50,000 --> 00:19:59,000 који ће да направи поп супер лако. 277 00:19:59,000 --> 00:20:02,000 Сада редови, које ће бити као баласта, 278 00:20:02,000 --> 00:20:06,000 али нареди да узмете ствари је обрнуто. 279 00:20:06,000 --> 00:20:10,000 Прототип пример ред је ред, 280 00:20:10,000 --> 00:20:12,000 па ваљда да си енглеском, ја бих рекао 281 00:20:12,000 --> 00:20:17,000 прототип пример ред је ред чекања. 282 00:20:17,000 --> 00:20:22,000 Дакле, као линији, ако си прва особа у реду, 283 00:20:22,000 --> 00:20:24,000 Ви очекујете да буде прва особа из линије. 284 00:20:24,000 --> 00:20:31,000 Ако сте последња особа у реду, ви ћете бити последња особа на сервис. 285 00:20:31,000 --> 00:20:35,000 Ми то зовемо ФИФО образац, а стек је ЛИФО образац. 286 00:20:35,000 --> 00:20:40,000 Ове речи су прилично универзална. 287 00:20:40,000 --> 00:20:46,000 >> Као и за разлику од гомиле низовима, редови обично не дозвољава приступ елементима у средини. 288 00:20:46,000 --> 00:20:50,000 Ево, стек, имамо пусх и поп. 289 00:20:50,000 --> 00:20:54,000 Ево, ми се деси да су их звали енкуеуе и декуеуе. 290 00:20:54,000 --> 00:20:58,000 Такође сам чуо да их називају смену и унсхифт. 291 00:20:58,000 --> 00:21:02,000 Чуо сам људи кажу притисак и поп да се примењују и на редовима. 292 00:21:02,000 --> 00:21:05,000 Чуо сам убацити, уклоните 293 00:21:05,000 --> 00:21:11,000 па пусх и поп, ако говоримо о димњацима, ти гурају и кокичара. 294 00:21:11,000 --> 00:21:16,000 Ако говорите о редовима, могли одабрати речи које желите да користите 295 00:21:16,000 --> 00:21:23,000 за убацивање и уклањање, а не постоји консензус о томе шта би требало да се зове. 296 00:21:23,000 --> 00:21:27,000 Али, овде имамо енкуеуе и декуеуе. 297 00:21:27,000 --> 00:21:37,000 Сада, струцт изгледа готово идентично стек струцт. 298 00:21:37,000 --> 00:21:40,000 Али морамо да пратите главе. 299 00:21:40,000 --> 00:21:44,000 Ваљда се каже овде, али зашто нам је потребна главу? 300 00:21:53,000 --> 00:21:57,000 Прототипови су у суштини идентични пусх и поп. 301 00:21:57,000 --> 00:21:59,000 Можете мислити о томе као пусх и поп. 302 00:21:59,000 --> 00:22:08,000 Једина разлика је поп враћа-уместо последњег, она се враћа први. 303 00:22:08,000 --> 00:22:12,000 2, 1, 3, 4, или тако нешто. 304 00:22:12,000 --> 00:22:14,000 И овде је почетак. 305 00:22:14,000 --> 00:22:17,000 Наш перчин је потпуно пуна, тако да четири елемента у њој. 306 00:22:17,000 --> 00:22:21,000 Крај нашег реда је тренутно 2, 307 00:22:21,000 --> 00:22:24,000 и сада идемо да убаците нешто друго. 308 00:22:24,000 --> 00:22:29,000 >> Када желимо да убаците ту нешто друго, оно што смо урадили за стек верзију 309 00:22:29,000 --> 00:22:36,000 се проширили смо нашу блок меморије. 310 00:22:36,000 --> 00:22:40,000 Шта је проблем са овим? 311 00:22:40,000 --> 00:22:45,000 [Студентски] Можете померати 2. 312 00:22:45,000 --> 00:22:51,000 Оно што сам рекао пре о крају реда, 313 00:22:51,000 --> 00:22:57,000 ово нема смисла да почињемо од 1, 314 00:22:57,000 --> 00:23:01,000 онда ми желимо да декуеуе 1, онда декуеуе 3, затим декуеуе 4, 315 00:23:01,000 --> 00:23:05,000 онда декуеуе 2, а затим декуеуе ово. 316 00:23:05,000 --> 00:23:08,000 Ми не можемо да користимо реаллоц сада, 317 00:23:08,000 --> 00:23:11,000 или у најмању руку, треба да користите реаллоц на другачији начин. 318 00:23:11,000 --> 00:23:15,000 Али ти вероватно не би требало да користе само реаллоц. 319 00:23:15,000 --> 00:23:18,000 Ви ћете морати да ручно копирате памћење. 320 00:23:18,000 --> 00:23:21,000 >> Постоје две функције да копирате меморије. 321 00:23:21,000 --> 00:23:25,000 Ту је и мемцопи меммове. 322 00:23:25,000 --> 00:23:29,000 Ја тренутно читате ман странице да бисте видели који ћете желети да користите. 323 00:23:29,000 --> 00:23:35,000 Ок, мемцопи, разлика је 324 00:23:35,000 --> 00:23:38,000 да мемцопи и меммове, један рукује правилно случај 325 00:23:38,000 --> 00:23:41,000 где сте копирање у региону која се дешава да се преклапају регион 326 00:23:41,000 --> 00:23:46,000 ти копирања. 327 00:23:46,000 --> 00:23:50,000 Мемцопи то не средим. Меммове ради. 328 00:23:50,000 --> 00:23:59,000 Можете да мислите о проблему као- 329 00:23:59,000 --> 00:24:09,000 Рецимо желим да копирате овог момка, 330 00:24:09,000 --> 00:24:13,000 ова четири до овог момка више. 331 00:24:13,000 --> 00:24:16,000 На крају, шта се низ требало да изгледа 332 00:24:16,000 --> 00:24:26,000 након копија је 2, 1, 2, 1, 3, 4, и онда неке ствари на крају. 333 00:24:26,000 --> 00:24:29,000 Али то зависи од редоследа у коме ми у ствари копије, 334 00:24:29,000 --> 00:24:32,000 јер ако ми не сматрамо чињеницу да је регион смо копирање у 335 00:24:32,000 --> 00:24:35,000 преклапа један смо од копирања, 336 00:24:35,000 --> 00:24:46,000 онда бисмо могли учинити као почетак овде, копирајте 2 у месту желимо да идемо, 337 00:24:46,000 --> 00:24:52,000 онда крене напред наше савете. 338 00:24:52,000 --> 00:24:56,000 >> Сада ћемо бити овде и овде, а сада желимо да копирате 339 00:24:56,000 --> 00:25:04,000 овај момак у овом момку и крене напред наше савете. 340 00:25:04,000 --> 00:25:07,000 Шта ћемо завршити све је 2, 1, 2, 1, 2, 1 341 00:25:07,000 --> 00:25:10,000 уместо одговарајућег 2, 1, 2, 1, 3, 4 јер 342 00:25:10,000 --> 00:25:15,000 2, 1 поништио првобитну 3, 4. 343 00:25:15,000 --> 00:25:19,000 Меммове ручке то добро. 344 00:25:19,000 --> 00:25:23,000 У овом случају, у основи само увек користите меммове 345 00:25:23,000 --> 00:25:26,000 јер га рукује исправно. 346 00:25:26,000 --> 00:25:29,000 То генерално не изврши било горе. 347 00:25:29,000 --> 00:25:32,000 Идеја је, уместо почевши од почетка и копирање на овај начин 348 00:25:32,000 --> 00:25:35,000 као што смо управо урадили овде, она почиње од краја и копира у, 349 00:25:35,000 --> 00:25:38,000 и у том случају, никада не можете имати проблема. 350 00:25:38,000 --> 00:25:40,000 Не постоји представа изгубљено. 351 00:25:40,000 --> 00:25:47,000 Увек користите меммове. Никада брините мемцопи. 352 00:25:47,000 --> 00:25:51,000 И то је место где ћете морати да одвојено меммове 353 00:25:51,000 --> 00:26:01,000 тхе умотан-около део вашег ред. 354 00:26:01,000 --> 00:26:04,000 Без бриге, ако не и потпуно учињено. 355 00:26:04,000 --> 00:26:10,000 То је теже него стек, гурати и попа. 356 00:26:10,000 --> 00:26:15,000 >> Свако имате код можемо радити са? 357 00:26:15,000 --> 00:26:21,000 Чак и ако у потпуности непотпун? 358 00:26:21,000 --> 00:26:23,000 [Студентски] Да, то је потпуно непотпун, ипак. 359 00:26:23,000 --> 00:26:27,000 Потпуно је у реду непотпуно докле год можемо, можете сачувати ревизију? 360 00:26:27,000 --> 00:26:32,000 Заборавио сам да је сваки пут. 361 00:26:32,000 --> 00:26:39,000 Ок, игноришући шта се дешава када треба да промените величину ствари. 362 00:26:39,000 --> 00:26:42,000 Потпуно игноришу промените величину. 363 00:26:42,000 --> 00:26:49,000 Објасните ову шифру. 364 00:26:49,000 --> 00:26:54,000 Ја сам проверу пре свега, ако је мања него копију пре свега 365 00:26:54,000 --> 00:27:01,000 и после тога сам убацити-узимам главу + величину, 366 00:27:01,000 --> 00:27:05,000 и да се уверим да је то обавија око капацитета низа, 367 00:27:05,000 --> 00:27:08,000 и ја убаците нову жицу на том положају. 368 00:27:08,000 --> 00:27:12,000 Онда сам повећати величину и врати истина. 369 00:27:12,000 --> 00:27:22,000 >> [Роб Б.] Ово је дефинитивно један од оних случајева где идете да желе да користе мод. 370 00:27:22,000 --> 00:27:25,000 Било која врста предмета где сте око паковање, ако мислите около паковање, 371 00:27:25,000 --> 00:27:29,000 непосредна мисао би требало да буде мод. 372 00:27:29,000 --> 00:27:36,000 Као брз оптимизације / направи ваш код једна линија краћи, 373 00:27:36,000 --> 00:27:42,000 приметите да линија одмах после ово 374 00:27:42,000 --> 00:27:53,000 је само величина + +, тако да споји то у овој линији, величина + +. 375 00:27:53,000 --> 00:27:58,000 Сада овде имамо случај 376 00:27:58,000 --> 00:28:01,000 где немамо довољно меморије, 377 00:28:01,000 --> 00:28:05,000 па ми смо све наше капацитете 2. 378 00:28:05,000 --> 00:28:09,000 Претпостављам да бих овде имају исти проблем, али можемо да га игноришемо сада, 379 00:28:09,000 --> 00:28:13,000 где ако ниси успео да повећа свој капацитет, 380 00:28:13,000 --> 00:28:18,000 онда ћеш желети да смањи свој капацитет за 2 поново. 381 00:28:18,000 --> 00:28:24,000 Други кратка напомена је исто као што можете да урадите + =, 382 00:28:24,000 --> 00:28:30,000 можете да урадите << =. 383 00:28:30,000 --> 00:28:43,000 Скоро све може ићи пред једнако, + =, | = & = << =. 384 00:28:43,000 --> 00:28:52,000 Цхар * нови је наш нови блок меморије. 385 00:28:52,000 --> 00:28:55,000 О, овамо. 386 00:28:55,000 --> 00:29:02,000 >> Шта људи мисле о врсти нашег новог блока меморије? 387 00:29:02,000 --> 00:29:06,000 [Студентски] То би требало да буде цхар **. 388 00:29:06,000 --> 00:29:12,000 Мислећи вратимо на струцт овде, 389 00:29:12,000 --> 00:29:14,000 Жице је оно што ми се премјештањем. 390 00:29:14,000 --> 00:29:21,000 Правимо читаву нову динамичну акумулацију елемената у реду. 391 00:29:21,000 --> 00:29:25,000 Оно што ћемо бити доделити својим жицама је оно што смо ми маллоцинг сада, 392 00:29:25,000 --> 00:29:30,000 па нова ће бити са цхар **. 393 00:29:30,000 --> 00:29:34,000 То ће бити низ стрингова. 394 00:29:34,000 --> 00:29:38,000 Онда шта је случај под којима ћемо се вратити лаж? 395 00:29:38,000 --> 00:29:41,000 [Студентски] Да будемо радимо цхар *? 396 00:29:41,000 --> 00:29:44,000 [Роб Б.] Да, добро позив. 397 00:29:44,000 --> 00:29:46,000 [Студентски] Шта је то? 398 00:29:46,000 --> 00:29:49,000 [Роб Б.] Ми смо желели да урадимо величину цхар * јер ми више не- 399 00:29:49,000 --> 00:29:53,000 то би заправо бити веома велики проблем јер сизеоф (инт) ће бити 1. 400 00:29:53,000 --> 00:29:55,000 Сизеоф цхар ће бити 4, 401 00:29:55,000 --> 00:29:58,000 тако много времена када сте се баве Интс, 402 00:29:58,000 --> 00:30:01,000 Ви имају тенденцију да побегне са њом јер величина инт и величине инт * 403 00:30:01,000 --> 00:30:04,000 на 32-битном систему ће бити иста ствар. 404 00:30:04,000 --> 00:30:09,000 Али овде, сизеоф (цхар) и сизеоф (цхар *) су сада ће бити иста ствар. 405 00:30:09,000 --> 00:30:15,000 >> Шта је околност где смо се вратили лаж? 406 00:30:15,000 --> 00:30:17,000 [Студентски] Нови је нулл. 407 00:30:17,000 --> 00:30:23,000 Да, ако је нова нулл, враћамо лажна, 408 00:30:23,000 --> 00:30:34,000 и ја ћу да бацим доле- 409 00:30:34,000 --> 00:30:37,000 [Студентски] [нечујан] 410 00:30:37,000 --> 00:30:39,000 [Роб Б.] Да, то је у реду. 411 00:30:39,000 --> 00:30:46,000 Или може да уради 2 пута капацитет или капацитета пребаци 1 и онда га само поставио овде, или било шта друго. 412 00:30:46,000 --> 00:30:52,000 Ми ћемо то урадити што смо га имали. 413 00:30:52,000 --> 00:30:56,000 Капацитет >> = 1. 414 00:30:56,000 --> 00:31:08,000 И ви никада нећете морати да бринете о губитку у 1 своје место 415 00:31:08,000 --> 00:31:12,000 јер сте оставили померен за 1, тако да је 1 је место нужно 0, 416 00:31:12,000 --> 00:31:16,000 па зар пребацивање са 1, још увек ће бити у реду. 417 00:31:16,000 --> 00:31:19,000 [Студентски] Да ли треба да урадим пре повратка? 418 00:31:19,000 --> 00:31:29,000 [Роб Б.] Да, то чини апсолутно нема смисла. 419 00:31:29,000 --> 00:31:36,000 >> Сада претпоставимо да ћемо завршити враћају тачно до краја. 420 00:31:36,000 --> 00:31:39,000 Начин ћемо да урадимо ове меммовес, 421 00:31:39,000 --> 00:31:45,000 морамо да будемо опрезни са колико их ради. 422 00:31:45,000 --> 00:31:50,000 Да ли неко има било какве сугестије о томе како ћемо их урадити? 423 00:32:17,000 --> 00:32:21,000 Ево наш почетак. 424 00:32:21,000 --> 00:32:28,000 Неизбежно, желимо да почнемо од почетка поново 425 00:32:28,000 --> 00:32:35,000 и фотокопир ствари у одатле, 1, 3, 4, 2. 426 00:32:35,000 --> 00:32:41,000 Како сте то урадили? 427 00:32:41,000 --> 00:32:52,000 Прво, морам да погледам у ман страници за меммове поново. 428 00:32:52,000 --> 00:32:57,000 Меммове, редослед аргумената је увек важно. 429 00:32:57,000 --> 00:33:01,000 Желимо прво наше одредиште, извор друго, величина трећи. 430 00:33:01,000 --> 00:33:06,000 Постоји много функција које преокренути извор и одредиште. 431 00:33:06,000 --> 00:33:11,000 Дестинација, извор тежи да буде доследна донекле. 432 00:33:17,000 --> 00:33:21,000 Покрет, шта је то враћа? 433 00:33:21,000 --> 00:33:27,000 Она враћа показивач на одредиште, из било ког разлога можда ћете желети то. 434 00:33:27,000 --> 00:33:32,000 Могу слику да прочитам, али желимо да пређемо на наше одредиште. 435 00:33:32,000 --> 00:33:35,000 >> Шта је наша дестинација ће бити? 436 00:33:35,000 --> 00:33:37,000 [Студентски] Нови. 437 00:33:37,000 --> 00:33:39,000 [Роб Б.] Да, и где смо копирања? 438 00:33:39,000 --> 00:33:43,000 Прва ствар коју смо копирање је ово 1, 3, 4. 439 00:33:43,000 --> 00:33:50,000 Шта је ово-1, 3, 4. 440 00:33:50,000 --> 00:33:55,000 Која је адреса овог 1? 441 00:33:55,000 --> 00:33:58,000 Која је адреса тог 1? 442 00:33:58,000 --> 00:34:01,000 [Студентски] [нечујан] 443 00:34:01,000 --> 00:34:03,000 [Роб Б.] Шеф + адреса првог елемента. 444 00:34:03,000 --> 00:34:05,000 Како смо добили први елемент у низу? 445 00:34:05,000 --> 00:34:10,000 [Студентски] Ред. 446 00:34:10,000 --> 00:34:15,000 [Роб Б.] Да, к.стрингс. 447 00:34:15,000 --> 00:34:20,000 Запамтите, овде, наша глава је 1. 448 00:34:20,000 --> 00:34:24,000 Дарн ит. Ја само мислим да је то магично 449 00:34:24,000 --> 00:34:29,000 Ево, наш глава 1. Идем да превише мењам боју. 450 00:34:29,000 --> 00:34:36,000 И овде је жице. 451 00:34:36,000 --> 00:34:41,000 Ово, можемо или да га напишем као што смо урадили овде 452 00:34:41,000 --> 00:34:43,000 са главама + к.стрингс. 453 00:34:43,000 --> 00:34:51,000 Много људи га такође пише и к.стрингс [шеф]. 454 00:34:51,000 --> 00:34:55,000 Ово није баш ништа мање ефикасна. 455 00:34:55,000 --> 00:34:58,000 Можда мислите о томе као да су га дереференцинг а затим добијање адресу, 456 00:34:58,000 --> 00:35:04,000 али компајлер ће га превести на оно што смо имали раније ионако к.стрингс + глава. 457 00:35:04,000 --> 00:35:06,000 Или начин на који желите да мислите о томе. 458 00:35:06,000 --> 00:35:11,000 >> А колико бајтова желимо да чујеш? 459 00:35:11,000 --> 00:35:15,000 [Студентски] Капацитет - глава. 460 00:35:15,000 --> 00:35:18,000 Капацитет - глава. 461 00:35:18,000 --> 00:35:21,000 И онда увек можете написати пример 462 00:35:21,000 --> 00:35:23,000 да схватим да ли је то у реду. 463 00:35:23,000 --> 00:35:26,000 [Студентски] То мора да буде подељено са 2 онда. 464 00:35:26,000 --> 00:35:30,000 Да, па претпостављам да би ми величину. 465 00:35:30,000 --> 00:35:35,000 Ми још увек имамо величину бити- 466 00:35:35,000 --> 00:35:39,000 користи величину, морамо величину једнаку 4. 467 00:35:39,000 --> 00:35:42,000 Наша величина је 4. Наша глава 1. 468 00:35:42,000 --> 00:35:46,000 Желимо да копирате ова 3 елемента. 469 00:35:46,000 --> 00:35:54,000 То је разум проверите да величину - глава је исправно 3. 470 00:35:54,000 --> 00:35:58,000 И долазе овамо, као што смо рекли раније, 471 00:35:58,000 --> 00:36:00,000 ако ми заузете, онда бисмо морали да поделите са 2 472 00:36:00,000 --> 00:36:04,000 јер смо већ одрасли наше капацитете, па уместо тога, ми ћемо користити величину. 473 00:36:11,000 --> 00:36:13,000 То копије које порција. 474 00:36:13,000 --> 00:36:18,000 Сада морамо да копирамо друге део, део који је остало од почетка. 475 00:36:18,000 --> 00:36:28,000 >> То ће меммове у оно положај? 476 00:36:28,000 --> 00:36:32,000 [Студентски] плус сизе - глава. 477 00:36:32,000 --> 00:36:38,000 Да, тако да смо већ копирали у величини - главе бајтова, 478 00:36:38,000 --> 00:36:43,000 па где желимо да копирамо преостале бајтове је нова 479 00:36:43,000 --> 00:36:48,000 и онда величина минус-добро, број бајтова које смо већ копира за 480 00:36:48,000 --> 00:36:52,000 А где смо копирања? 481 00:36:52,000 --> 00:36:54,000 [Студентски] К.стрингс [0]. 482 00:36:54,000 --> 00:36:56,000 [Роб Б.] Да, к.стрингс. 483 00:36:56,000 --> 00:37:02,000 Ми или да урадите и к.стрингс [0]. 484 00:37:02,000 --> 00:37:05,000 Ово је знатно ређе од овога. 485 00:37:05,000 --> 00:37:14,000 Ако је само то ће бити 0, онда ћете да видим к.стрингс. 486 00:37:14,000 --> 00:37:16,000 То је место где смо копирања. 487 00:37:16,000 --> 00:37:18,000 Колико бајтова ми је остало да чујеш? >> [Студентски] 10. 488 00:37:18,000 --> 00:37:20,000 Тачно. 489 00:37:20,000 --> 00:37:25,000 [Студентски] Да ли морамо да се размножавају 5 - 10 пута већи од бајта или тако нешто? 490 00:37:25,000 --> 00:37:30,000 Да, па ово је место где-шта смо копирањем? 491 00:37:30,000 --> 00:37:32,000 [Студентски] [нечујан] 492 00:37:32,000 --> 00:37:34,000 Која је врста ствари смо копирања? 493 00:37:34,000 --> 00:37:36,000 [Студентски] [нечујан] 494 00:37:36,000 --> 00:37:41,000 Да, тако цхар * с да смо копирање, ми не знамо где се оне долазе. 495 00:37:41,000 --> 00:37:47,000 Па, где они указују да, као жица, завршимо гурајући га на ред 496 00:37:47,000 --> 00:37:49,000 или енкуеуинг на ред. 497 00:37:49,000 --> 00:37:51,000 Одакле они долазе из, немамо појма. 498 00:37:51,000 --> 00:37:56,000 Ми само треба да пратите на цхар * с самих. 499 00:37:56,000 --> 00:38:00,000 Ми не желимо да копирате величину - Шеф бајтова. 500 00:38:00,000 --> 00:38:03,000 Желимо да копирате величину - Шеф цхар * с, 501 00:38:03,000 --> 00:38:11,000 па ћемо да помножите ово сизеоф (цхар *). 502 00:38:11,000 --> 00:38:17,000 Исто овде доле, глава * сизеоф (цхар *). 503 00:38:17,000 --> 00:38:24,000 >> [Студентски] Шта [нечујан]? 504 00:38:24,000 --> 00:38:26,000 Ово овде? 505 00:38:26,000 --> 00:38:28,000 [Студентски] Не, испод тога, величина - глава. 506 00:38:28,000 --> 00:38:30,000 [Роб Б.] Ово овде? 507 00:38:30,000 --> 00:38:32,000 Показивач аритметика. 508 00:38:32,000 --> 00:38:35,000 Како показивач аритметика ће радити јесте 509 00:38:35,000 --> 00:38:40,000 то аутоматски множи са величином типа да смо се баве. 510 00:38:40,000 --> 00:38:46,000 Баш као овде, нови + (величина - глава) 511 00:38:46,000 --> 00:38:56,000 управо одговара и нови [величини - главе] 512 00:38:56,000 --> 00:39:00,000 док очекујемо да исправно раде, 513 00:39:00,000 --> 00:39:04,000 јер ако имамо посла са инт низ, онда не индекс од инт- 514 00:39:04,000 --> 00:39:07,000 или ако је то од величине 5 и желите 4. елемент, онда индекс у 515 00:39:07,000 --> 00:39:10,000 инт низ [4]. 516 00:39:10,000 --> 00:39:14,000 Ви немојте-[4] * величина инт. 517 00:39:14,000 --> 00:39:21,000 То ручке аутоматски, и овај случај 518 00:39:21,000 --> 00:39:29,000 је буквално еквивалент, па носач синтакса 519 00:39:29,000 --> 00:39:34,000 је само ће бити конвертован у ово чим компајлирати. 520 00:39:34,000 --> 00:39:38,000 То је нешто што треба да пазите да 521 00:39:38,000 --> 00:39:42,000 када додајете величину - глава 522 00:39:42,000 --> 00:39:45,000 додајете не један бајт. 523 00:39:45,000 --> 00:39:53,000 Ти додајући један цхар *, што може бити један бајтова или шта год. 524 00:39:53,000 --> 00:39:56,000 >> Остала питања? 525 00:39:56,000 --> 00:40:04,000 Ок, декуеуе ће бити лакше. 526 00:40:04,000 --> 00:40:11,000 Даћу вам један минут да спроведе. 527 00:40:11,000 --> 00:40:18,000 Ох, и мислим да је ово иста ситуација у којој 528 00:40:18,000 --> 00:40:21,000 шта енкуеуе случај, ако смо енкуеуинг нулл, 529 00:40:21,000 --> 00:40:24,000 можда желимо да се рукује, можда не. 530 00:40:24,000 --> 00:40:27,000 Нећемо то урадити поново овде, али исто као и наш стек случају. 531 00:40:27,000 --> 00:40:34,000 Ако смо енкуеуе ништавним, можда ћемо желети да га занемарите. 532 00:40:34,000 --> 00:40:40,000 Свако има неку шифру могу повући горе? 533 00:40:40,000 --> 00:40:45,000 [Студентски] Морам декуеуе. 534 00:40:45,000 --> 00:40:56,000 Верзија 2 је да-ок. 535 00:40:56,000 --> 00:40:59,000 Хоћеш да објасним? 536 00:40:59,000 --> 00:41:01,000 [Студентски] Прво, проверите да ли постоји нешто у реду 537 00:41:01,000 --> 00:41:07,000 и да величина иде доле за 1. 538 00:41:07,000 --> 00:41:11,000 Ви треба да урадите то, а онда вратите главу 539 00:41:11,000 --> 00:41:13,000 и онда померите главу 1. 540 00:41:13,000 --> 00:41:19,000 Ок, тако да је угао случај да морамо да размотримо. Да. 541 00:41:19,000 --> 00:41:24,000 [Студентски] Ако је ваша глава је у последњем елементу, 542 00:41:24,000 --> 00:41:26,000 онда не желимо да истакнемо глава изван низа. 543 00:41:26,000 --> 00:41:29,000 >> Да, па чим главу удари крај нашег низу, 544 00:41:29,000 --> 00:41:35,000 када смо декуеуе, наша глава треба да буде моддед назад на 0. 545 00:41:35,000 --> 00:41:40,000 Нажалост, не можемо то урадити у једном кораку. 546 00:41:40,000 --> 00:41:44,000 Претпостављам како сам вероватно бих се поправи 547 00:41:44,000 --> 00:41:52,000 ово ће бити цхар, оно што се враћамо, 548 00:41:52,000 --> 00:41:55,000 год ваше име променљиве жели да буде. 549 00:41:55,000 --> 00:42:02,000 Онда смо да модифитсиране главу наше способности 550 00:42:02,000 --> 00:42:10,000 и онда се врати д. 551 00:42:10,000 --> 00:42:14,000 Много људи овде би могли да до- 552 00:42:14,000 --> 00:42:19,000 ово је случај-Видећеш људе учинити ако глава 553 00:42:19,000 --> 00:42:29,000 је већи од капацитета, до главе - капацитет. 554 00:42:29,000 --> 00:42:36,000 И то је управо оно што ради око мод је. 555 00:42:36,000 --> 00:42:41,000 Шеф мод = капацитет је много чистији 556 00:42:41,000 --> 00:42:51,000 од око омоту него ако глава већа од капацитета главе - капацитета. 557 00:42:51,000 --> 00:42:56,000 >> Питања? 558 00:42:56,000 --> 00:43:02,000 Ок, последња ствар коју смо оставили наша повезана листа. 559 00:43:02,000 --> 00:43:07,000 Можда ћете бити коришћен за неке повезане листе понашања ако јеси 560 00:43:07,000 --> 00:43:11,000 повезана листа у вашим хасх табеле, ако је урадио хеш табелу. 561 00:43:11,000 --> 00:43:15,000 Препоручујем радиш хеш табелу. 562 00:43:15,000 --> 00:43:17,000 Можда сте већ урадили трие, 563 00:43:17,000 --> 00:43:23,000 већ покушава теже. 564 00:43:23,000 --> 00:43:27,000 У теорији, они су асимптотски боље. 565 00:43:27,000 --> 00:43:30,000 Али само погледајте на великој табли, 566 00:43:30,000 --> 00:43:35,000 и покушава никад боље, а они заузимају више меморије. 567 00:43:35,000 --> 00:43:43,000 Све о покушава завршава се горе за више посла. 568 00:43:43,000 --> 00:43:49,000 То је оно Дејвида Малан решење је увек 569 00:43:49,000 --> 00:43:56,000 је он увек порука његову трие решење, па да видимо где је тренутно. 570 00:43:56,000 --> 00:44:00,000 Шта је он био под Давид Ј? 571 00:44:00,000 --> 00:44:06,000 Он је # 18, тако да није страшно лоше, 572 00:44:06,000 --> 00:44:09,000 и то ће бити један од најбољих покушава можете мислити 573 00:44:09,000 --> 00:44:17,000 или један од најбољих покушава од трие. 574 00:44:17,000 --> 00:44:23,000 Да ли је то чак и није његов оригинални решење? 575 00:44:23,000 --> 00:44:29,000 Осећам се као да трие решења имају тенденцију да буду више у овом опсегу РАМ употребе. 576 00:44:29,000 --> 00:44:33,000 >> Идите доле до самог врха, и РАМ употреба је у једноцифрен. 577 00:44:33,000 --> 00:44:36,000 Идите доле према дну, а онда да видите покушава 578 00:44:36,000 --> 00:44:41,000 где сте добили апсолутно масиван потрошњу РАМ 579 00:44:41,000 --> 00:44:45,000 и покушава теже. 580 00:44:45,000 --> 00:44:53,000 Не у потпуности, али вредело образовног искуства ако си један. 581 00:44:53,000 --> 00:44:56,000 Последња ствар је наша повезана листа, 582 00:44:56,000 --> 00:45:04,000 и ове три ствари, стек редова, а повезане листе, 583 00:45:04,000 --> 00:45:09,000 свака будућа ствар коју си икада урадити за компјутерске науке 584 00:45:09,000 --> 00:45:12,000 ће претпоставити да имате упознати са овим стварима. 585 00:45:12,000 --> 00:45:19,000 Они су само толико фундаментална за све. 586 00:45:19,000 --> 00:45:25,000 >> Повезан листе, а овде смо појединачно повезана листа ће бити наш имплементација. 587 00:45:25,000 --> 00:45:34,000 Шта појединачно повезана значи насупрот двоструко повезани? Да. 588 00:45:34,000 --> 00:45:37,000 [Студентски] То само указује на следећу показивача него на показивача, 589 00:45:37,000 --> 00:45:39,000 попут оног који претходи га и онај после њега. 590 00:45:39,000 --> 00:45:44,000 Да, па на слици формату, шта сам урадио? 591 00:45:44,000 --> 00:45:48,000 Имам две ствари. Имам слику и слику. 592 00:45:48,000 --> 00:45:51,000 На слици формату, наши појединачно повезане листе, 593 00:45:51,000 --> 00:45:57,000 неизбежно, имамо неку врсту показивача на челу наше листе, 594 00:45:57,000 --> 00:46:02,000 а онда у нашем листу, имамо само показиваче, 595 00:46:02,000 --> 00:46:05,000 и мозда то указује на нулл. 596 00:46:05,000 --> 00:46:08,000 То ће бити ваш типичан цртеж појединачно повезане листе. 597 00:46:08,000 --> 00:46:14,000 Двоструко повезане листе, можете ићи уназад. 598 00:46:14,000 --> 00:46:19,000 Ако ти дам било какав чвор у листи, онда нужно да дођете до 599 00:46:19,000 --> 00:46:23,000 било који други чвор у листи ако је двоструко повезана листа. 600 00:46:23,000 --> 00:46:27,000 Али, ако сам ти трећи чвор у листи и то је појединачно повезана листа, 601 00:46:27,000 --> 00:46:30,000 нема шансе да ћеш икада доћи до прве и друге чворове. 602 00:46:30,000 --> 00:46:34,000 А ту је и користи и штете, и један очигледан један 603 00:46:34,000 --> 00:46:42,000 је ли заузимају више величина, а ви морате да пратите где се ове ствари су сада показујем. 604 00:46:42,000 --> 00:46:49,000 Али ми смо само стало појединачно повезана. 605 00:46:49,000 --> 00:46:53,000 >> Неколико ствари које ћемо морати да спроведе. 606 00:46:53,000 --> 00:47:00,000 Ваша типедеф струцт ноде, инт: струцт ноде * следећа; чвор. 607 00:47:00,000 --> 00:47:09,000 То типедеф треба спалити у вашим главама. 608 00:47:09,000 --> 00:47:14,000 Квиз 1 треба дати бих типедеф од повезаног листе чвор, 609 00:47:14,000 --> 00:47:18,000 и требало би да буду у стању да одмах Сцриббле то доле 610 00:47:18,000 --> 00:47:22,000 чак и без размишљања о томе. 611 00:47:22,000 --> 00:47:27,000 Претпостављам пар питања, зашто морамо струцт овде? 612 00:47:27,000 --> 00:47:32,000 Зашто не можемо рећи чвор *? 613 00:47:32,000 --> 00:47:35,000 [Студентски] [нечујан] 614 00:47:35,000 --> 00:47:38,000 Да. 615 00:47:38,000 --> 00:47:44,000 Једина ствар која дефинише чвор као ствар 616 00:47:44,000 --> 00:47:47,000 је сама типедеф. 617 00:47:47,000 --> 00:47:55,000 Али, од ове тачке, када смо некако анализи кроз ове дефиниције струцт ноде, 618 00:47:55,000 --> 00:48:01,000 нисмо завршили још наш типедеф, па пошто типедеф није завршио, 619 00:48:01,000 --> 00:48:05,000 чвор не постоји. 620 00:48:05,000 --> 00:48:12,000 Али струцт чвор има, и то чвор овде, 621 00:48:12,000 --> 00:48:14,000 ово би могло да се зове нешто друго. 622 00:48:14,000 --> 00:48:16,000 То би се могло назвати н. 623 00:48:16,000 --> 00:48:19,000 Може се зове повезана листа чвор. 624 00:48:19,000 --> 00:48:21,000 Може се зове ништа. 625 00:48:21,000 --> 00:48:26,000 Али ово струцт чвор треба да се зове исто као и овај струцт ноде. 626 00:48:26,000 --> 00:48:29,000 Оно што ви зовете то мора бити овде, 627 00:48:29,000 --> 00:48:32,000 и тако да се одговори на другу тачку на питање 628 00:48:32,000 --> 00:48:37,000 због чега је, много пута када видите Структуре и типедефс од Структуре, 629 00:48:37,000 --> 00:48:42,000 видећете анонимне Структуре где ћете само видети типедеф струцт, 630 00:48:42,000 --> 00:48:47,000 имплементација струцт, речника, или било шта друго. 631 00:48:47,000 --> 00:48:51,000 >> Зашто овде не морамо да кажемо чвор? 632 00:48:51,000 --> 00:48:54,000 Зашто не може да буде анонимна струцт? 633 00:48:54,000 --> 00:48:56,000 Скоро је исти одговор. 634 00:48:56,000 --> 00:48:58,000 [Студентски] Морате да се односи на њега у струцт. 635 00:48:58,000 --> 00:49:04,000 Да, у оквиру струцт, морате да се односи на саму струцт. 636 00:49:04,000 --> 00:49:10,000 Ако не дати струцт име, ако је анонимни струцт, не може односити на њега. 637 00:49:10,000 --> 00:49:17,000 И последње, али не најмање њих треба да буду помало једноставно, 638 00:49:17,000 --> 00:49:20,000 и они би требало да вам помогну да схватите ако пишете ово доле 639 00:49:20,000 --> 00:49:24,000 да радите нешто погрешно ако се ови свашта немају смисла. 640 00:49:24,000 --> 00:49:28,000 Последње, али не и најмање важно, зашто то мора да буде струцт ноде *? 641 00:49:28,000 --> 00:49:34,000 Зашто не може бити само струцт ноде следеће? 642 00:49:34,000 --> 00:49:37,000 [Студент] показивач на следећу струцт. 643 00:49:37,000 --> 00:49:39,000 То је неизбежно шта желимо. 644 00:49:39,000 --> 00:49:42,000 Зашто би то никад бити струцт ноде следећи? 645 00:49:42,000 --> 00:49:50,000 Зашто то мора да буде струцт ноде * следећи? Да. 646 00:49:50,000 --> 00:49:53,000 [Студентски] То је као бесконачну петљу. 647 00:49:53,000 --> 00:49:55,000 Да. 648 00:49:55,000 --> 00:49:57,000 [Студентски] Све би било у једном. 649 00:49:57,000 --> 00:50:02,000 Да, само мислим о томе како ћемо урадити величину или тако нешто. 650 00:50:02,000 --> 00:50:08,000 Величина једног струцт је у основи + или - неки образац овде или тамо. 651 00:50:08,000 --> 00:50:15,000 То је у основи ће бити збир величина ствари у струцт. 652 00:50:15,000 --> 00:50:18,000 Овај овде, не мењајући ништа, величина ће бити лако. 653 00:50:18,000 --> 00:50:24,000 Величина струцт ноде ће бити величине и + величине следећи. 654 00:50:24,000 --> 00:50:27,000 Величина и је бити 4. Величина од идуће ће бити 4. 655 00:50:27,000 --> 00:50:30,000 Величина струцт ноде ће бити 8. 656 00:50:30,000 --> 00:50:34,000 Ако ми немамо *, мислећи на сизеоф, 657 00:50:34,000 --> 00:50:37,000 онда сизеоф (и) ће бити 4. 658 00:50:37,000 --> 00:50:43,000 Величина струцт ноде поред ће бити величине И + величина струцт ноде следећег 659 00:50:43,000 --> 00:50:46,000 + И + величина величине струцт ноде следећи. 660 00:50:46,000 --> 00:50:55,000 Било би бескрајно рекурзије чворова. 661 00:50:55,000 --> 00:51:00,000 То је разлог зашто је то како ствари треба да буде. 662 00:51:00,000 --> 00:51:03,000 >> Опет, дефинитивно памте да је, 663 00:51:03,000 --> 00:51:06,000 или бар да разумем довољно да можете бити у стању да 664 00:51:06,000 --> 00:51:12,000 Разлог кроз оно што би требало да изгледа. 665 00:51:12,000 --> 00:51:14,000 Ствари идемо да жели да спроведе. 666 00:51:14,000 --> 00:51:18,000 Ако дужина листе, 667 00:51:18,000 --> 00:51:21,000 можеш преварити и држати око 668 00:51:21,000 --> 00:51:24,000 Глобална дужина или тако нешто, али ми нећемо да се то уради. 669 00:51:24,000 --> 00:51:28,000 Идемо да израчуна дужину листе. 670 00:51:28,000 --> 00:51:34,000 Ми смо садржи, тако да је то у основи као претрагу, 671 00:51:34,000 --> 00:51:41,000 тако да имамо повезане списак бројева да види ако је то цео је у повезаној листи. 672 00:51:41,000 --> 00:51:44,000 Препенд ће убацити на почетку листе. 673 00:51:44,000 --> 00:51:46,000 Аппенд ће убацити на крају. 674 00:51:46,000 --> 00:51:53,000 Инсерт_сортед ће убаците у сортираном позицију на листи. 675 00:51:53,000 --> 00:52:01,000 Инсерт_сортед врста претпоставља да никада није користио препенд или додате у лошим начине. 676 00:52:01,000 --> 00:52:09,000 >> Инсерт_сортед кад имплементацији инсерт_сортед- 677 00:52:09,000 --> 00:52:13,000 рецимо имамо повезане листе. 678 00:52:13,000 --> 00:52:18,000 То је оно што тренутно изгледа, 2, 4, 5. 679 00:52:18,000 --> 00:52:24,000 Желим да убаците 3, докле год сама листа је већ сортиран, 680 00:52:24,000 --> 00:52:27,000 то је лако наћи где 3 припада. 681 00:52:27,000 --> 00:52:29,000 Почнем на 2. 682 00:52:29,000 --> 00:52:32,000 Ок, 3 је већи од 2, тако да желим да наставим. 683 00:52:32,000 --> 00:52:35,000 О, 4 је превелик, тако да знам 3 је отићи између 2 и 4, 684 00:52:35,000 --> 00:52:39,000 и морам да поправим тројке и све те ствари. 685 00:52:39,000 --> 00:52:43,000 Али ако нисмо користили строго инсерт_сортед, 686 00:52:43,000 --> 00:52:50,000 као рецимо ја препенд 6, 687 00:52:50,000 --> 00:52:55,000 онда мој линкед листа ће постати ово. 688 00:52:55,000 --> 00:53:01,000 Сада нема смисла, тако да је за инсерт_сортед, можете само претпоставити 689 00:53:01,000 --> 00:53:04,000 да листа сортирана, иако постоје операције 690 00:53:04,000 --> 00:53:09,000 што може довести до тога да не буде сортиран, и то је то. 691 00:53:09,000 --> 00:53:20,000 Пронађи помоћи убаци-тако, то су главне ствари које ћеш морати да спроведе. 692 00:53:20,000 --> 00:53:24,000 >> За сада, узмите мало да дужину и садржи, 693 00:53:24,000 --> 00:53:30,000 и они би требало да буде релативно брзо. 694 00:53:41,000 --> 00:53:48,000 Ближи затварању време, тако да свако има нешто за дужину или садржи? 695 00:53:48,000 --> 00:53:50,000 Они ће бити готово идентична. 696 00:53:50,000 --> 00:53:57,000 [Студентски] Дужина. 697 00:53:57,000 --> 00:54:01,000 Хајде да видимо, ревизију. 698 00:54:01,000 --> 00:54:04,000 Ок. 699 00:54:12,000 --> 00:54:15,000 Хоћеш да објасним? 700 00:54:15,000 --> 00:54:21,000 [Студентски] Управо сам направити чвор показивача и покрене га прво, што је наша глобална променљива, 701 00:54:21,000 --> 00:54:27,000 и онда сам провери да ли је то нула, тако да не добијем СЕГ грешку и вратили 0 ако је то случај. 702 00:54:27,000 --> 00:54:34,000 Иначе, петља кроз, вођење рачуна о року цео 703 00:54:34,000 --> 00:54:38,000 колико пута сам приступити следећи елемент листе 704 00:54:38,000 --> 00:54:43,000 и у истој операцији прираст приступити да стварни елемент, 705 00:54:43,000 --> 00:54:47,000 и онда сам стално да провере да ли је то нула, 706 00:54:47,000 --> 00:54:56,000 и ако је нула, онда прекида и само враћа број елемената сам приступити. 707 00:54:56,000 --> 00:55:01,000 >> [Роб Б.] Да ли неко има било какве коментаре о било чему? 708 00:55:01,000 --> 00:55:06,000 Ово изгледа фино исправност мудрим. 709 00:55:06,000 --> 00:55:10,000 [Студент] Мислим да не треба чвор == нулл. 710 00:55:10,000 --> 00:55:13,000 Да, па ако чвор == нулл повратак 0. 711 00:55:13,000 --> 00:55:18,000 Али ако чвор == нулл онда ово-ох, ту је исправност питање. 712 00:55:18,000 --> 00:55:23,000 То је био само си ја врати, али није у обиму сада. 713 00:55:23,000 --> 00:55:30,000 Ви само треба инт, па сам = 0. 714 00:55:30,000 --> 00:55:34,000 Али ако чвор је нулл, онда сам још увек ће бити 0, 715 00:55:34,000 --> 00:55:39,000 и ми ћемо вратити 0, тако да је ово случај је идентичан. 716 00:55:39,000 --> 00:55:48,000 Друга заједничка ствар је да декларацију 717 00:55:48,000 --> 00:55:51,000 од чвора унутрашње за петљу. 718 00:55:51,000 --> 00:55:54,000 Могло би се рећи, ох, не. 719 00:55:54,000 --> 00:55:56,000 Будимо је као ово. 720 00:55:56,000 --> 00:55:59,000 Вероватно бих ставио инт и = 0 одавде, 721 00:55:59,000 --> 00:56:05,000 онда чвор * чвор = први овде. 722 00:56:05,000 --> 00:56:11,000 И ово је вероватно како-отарасили ово сада. 723 00:56:11,000 --> 00:56:14,000 Ово је вероватно како бих га написао. 724 00:56:14,000 --> 00:56:21,000 Ви би такође, гледа на то овако. 725 00:56:21,000 --> 00:56:25,000 Ово је за петље структуру овде 726 00:56:25,000 --> 00:56:30,000 би требало да буде готово као природно за вас као и за инт и = 0 727 00:56:30,000 --> 00:56:33,000 и је мање од дужине низа + + и. 728 00:56:33,000 --> 00:56:38,000 Ако је то како сте прелазили преко низа, то је како сте прелазили преко повезаних листи. 729 00:56:38,000 --> 00:56:45,000 >> Ово би требало да буде друга природа у неком тренутку. 730 00:56:45,000 --> 00:56:50,000 Имајући то у виду, ово ће бити готово иста ствар. 731 00:56:50,000 --> 00:56:57,000 Ти ћеш желети да вршите итерацију кроз повезану листу. 732 00:56:57,000 --> 00:57:02,000 Ако чвор-Немам појма шта је вредност се зове. 733 00:57:02,000 --> 00:57:04,000 Чвор и. 734 00:57:04,000 --> 00:57:15,000 Ако вредност у том чвору = и врати истина, и то је то. 735 00:57:15,000 --> 00:57:18,000 Обратите пажњу на то једини начин смо икада вратити фалсе 736 00:57:18,000 --> 00:57:23,000 је ако смо прелазили преко целог повезаног листе и никад не врате тачно, 737 00:57:23,000 --> 00:57:29,000 тако да је оно што овај ради. 738 00:57:29,000 --> 00:57:36,000 Као страни белешку, вероватно нећемо добити бисте додали или препенд. 739 00:57:36,000 --> 00:57:39,000 >> Брзо последња напомена. 740 00:57:39,000 --> 00:57:52,000 Ако видите статички кључну реч, па рецимо инт цоунт = 0, 741 00:57:52,000 --> 00:57:56,000 онда ми број + +, што у основи могу мислити о томе као глобална променљива, 742 00:57:56,000 --> 00:58:00,000 иако сам рекао да ово није начин ћемо спровести дужину. 743 00:58:00,000 --> 00:58:06,000 Ја радим овде ово, а онда рачунају + +. 744 00:58:06,000 --> 00:58:11,000 Било који начин можемо ући чвор у нашу повезаној листи смо увецава нашу број. 745 00:58:11,000 --> 00:58:15,000 Поента је што статички кључна реч значи. 746 00:58:15,000 --> 00:58:20,000 Ако сам управо имао инт цоунт = 0 да би редовна стара глобална променљива. 747 00:58:20,000 --> 00:58:25,000 Шта инт Број значи да је глобална променљива у овом фајлу. 748 00:58:25,000 --> 00:58:28,000 Немогуће је за неки други фајл, 749 00:58:28,000 --> 00:58:34,000 свиђа мислим псет 5, ако сте почели. 750 00:58:34,000 --> 00:58:39,000 Имате обе спеллер.ц, а имате дицтионари.ц, 751 00:58:39,000 --> 00:58:42,000 а ако само прогласи нешто глобално, онда ништа спеллер.ц 752 00:58:42,000 --> 00:58:45,000 може се приступити у дицтионари.ц и обрнуто. 753 00:58:45,000 --> 00:58:48,000 Глобалне променљиве су доступне било ц фајла., 754 00:58:48,000 --> 00:58:54,000 али статички променљиве су доступни само из саме датотеке, 755 00:58:54,000 --> 00:59:01,000 па унутар правописа или унутрашњости дицтионари.ц, 756 00:59:01,000 --> 00:59:06,000 ово је врста како бих изјављујем своју променљиву за величину мог низа 757 00:59:06,000 --> 00:59:10,000 или величину мог броја речи у речнику. 758 00:59:10,000 --> 00:59:15,000 Пошто ја не желим да се изјасни глобалну променљиву да свако има приступ, 759 00:59:15,000 --> 00:59:18,000 Ја заиста само стало за своје потребе. 760 00:59:18,000 --> 00:59:21,000 >> Добра ствар у вези овога је и цело име судар ствари. 761 00:59:21,000 --> 00:59:27,000 Ако неки други фајл покушава да користи глобалну променљиву под именом гроф, ствари иду веома, веома лоше, 762 00:59:27,000 --> 00:59:33,000 тако да је ово лепо држи ствари сигурно, и само ви можете да приступите, 763 00:59:33,000 --> 00:59:38,000 и нико други не може, а ако неко други прогласи глобалну променљиву зове тацка, 764 00:59:38,000 --> 00:59:43,000 онда неће ометати ваше статичне променљиве зове гроф. 765 00:59:43,000 --> 00:59:47,000 То је оно што је статично. То је фајл глобална променљива. 766 00:59:47,000 --> 00:59:52,000 >> Питања о било чему? 767 00:59:52,000 --> 00:59:59,000 Све је спремно. Ћао. 768 00:59:59,000 --> 01:00:03,000 [ЦС50.ТВ]