>> [TÓNLIST spila]
CAMILLE REKHSON: Hi, allir.
Velkomin á CS50 quiz núll endurskoðun fundur.
Ég er Camille.
Og ég ætla að vera að fara yfir sum málefni með þér
krakkar í dag til að hjálpa þér undirbúa sig fyrir prófið.
Svo er hér okkar ekki tæmandi listi yfir efni sem þú
ætti að vera kunnugt um próf.
Þessar voru teknar beint frá kennsluáætlun.
Ég veit að það virðist eins og a einhver fjöldi.
En treystu mér, hefur þú lært allt þetta á undanförnum vikum.
>> Þannig að við munum örugglega vera að fara yfir mikið af þessum í dag.
En einnig að taka smá tíma á þinn eigin til að endurskoða þessa hluti.
Og ef þú værir ekki kunnugt hvað sumir af þessum hlutum eru,
vertu viss um að spyrja einn af okkur.
Einnig, vegna opinbers orð á spurningakeppni, fara á þennan tengil.
Þetta mun hafa allar upplýsingar sem herbergi sem þú þarft að fara í,
skipt upp í stafrófsröð, og einnig nokkrar ábendingar um hvað efni
þú ættir að vera að læra, og hvaða tegund af quiz spurningum sem þú getur búist við.
Svo tryggja að athuga það út.
>> Einnig, sumir ábendingar um þegar þér eru að undirbúa fyrir prófið.
Æfðu erfðaskrá á pappír.
Ég veit að þú hefur fengið að nota til að hafa IDE stöðva fyrir villur fyrir þig,
og it's-- þegar þú ert að skrifa það upp, það er svolítið öðruvísi en að þurfa
að skrifa það út.
Svo æfa gera sumir kóðun.
Nokkur góð aðgerðir til að æfa gera eru strlen og atoi,
sjá hvort þú gætir skrifað þá út á eigin spýtur.
Vera kunnugt um vandamál setur.
Flest ár eru spurningar sem tengjast
að sumir af the vandamál að setja efni.
Svo tryggja að þú skiljir hvernig á að gera allt vandamál setur.
>> Reyna að gera sumir af gömlu prófum undir 75 mínútna tíma þvingun.
A einhver fjöldi af the Skyndipróf getur verið góður af lengi.
Svo það er góð leið til að gefa sjálfur sumir æfa,
og hversu lengi það mun taka þig, og hvernig þér
ætti að skipta tíma til að ganga úr skugga um að þú klára allt í lok.
Og einnig, þú færð eina síðu, tvíhliða tilvísun lak
að þú getur skrifað hvað sem þú vilja til að nota á prófinu.
Svo þegar þú ert að búa það, það er líka
mjög góð leið til að læra af því þú munt konar vera að skoða hlutina
eins og þú ert að skrifa það.
>> Svo allir almennar spurningar um quiz, eða hvernig það virkar?
Já.
>> Áhorfendur: Mun þessi listi af efni sem þú sýndi bara vera í boði fyrir okkur
á netinu?
>> CAMILLE REKHSON: Þetta allt renna sýning verða settar á vef.
Einnig, the vídeó endurskoðun í dag fundur verður á heimasíðu.
Svo ekki hafa áhyggjur of mikill óður skrifa það niður á öllu.
Það verður allt að vera þar.
Aðrar spurningar?
OK, þannig að við skulum byrja.
>> Svo eitt að vera kunnugt er mismunandi gerðir gagna og stærð
að þeir taka á sig.
Þetta getur einnig vera a mikill hlutur til að skrifa niður á viðmiðunartímabilinu blaði þínu,
bara til að tryggja að þú muna allt.
But-- svo stafir eru 1 bæti.
Ints eru 4 bytes.
A langur, langur, sem er í grundvallaratriðum meira pláss fyrir heiltölu, er 8 bæti.
A fljóta er 4 bæti.
A tvöfaldur, sem í grundvallaratriðum gefur þér meira pláss til að geyma fljóta, er 8 bæti.
Og þá er bendillinn einnig 8 bytes.
Einhverjar spurningar um þetta?
>> Svo er tvöfaldur annað efni sem við höfum falla svolítið á þessari önn.
Svo skulum gera sumir æfa með umbreyta
milli tvöfaldur og tugabrot.
Svo einhver hafa allir hugmynd um hvað sem fyrst myndi vera?
Einhver?
Já, það er 42.
Svo ef þú manst hver af þeim stöðum í tveimur
er í grundvallaratriðum eins 2 til valda þeim stað er.
>> Svo að fyrst blettur er 2 til 0 völd.
Og við höfum 0 þar, svo ekkert þar.
Næsta stað er 2 til fyrsta aflið.
Og við eigum a 1 þar, svo er það í grundvallaratriðum a 2.
Næsta staður er 2 til annað, sem er 4.
Við höfum ekki neitt þar.
Næsta sæti yfir er 2 til þriðja, sem væri 8.
Og við höfum einn þar.
Og við höldum áfram.
Sem last-- á lengst til vinstri er einn þar sem við höfum 32.
Og svo höfum við í rauninni 32 plús 8 plús 2 til að fá 42.
Einhverjar spurningar?
>> Áhorfendur: Hvað er hnéleturs fyrir?
>> CAMILLE REKHSON: The hnéleturs grundvallaratriðum segir okkur að það er tvöfaldur.
Svo er það 2 þar.
Ef það voru like-- í næsta einn, eða þegar við erum að breyta aukastaf
tveimur, það er 10 sýna okkur að þessi tala er upphaflega í aukastaf.
>> Áhorfendur: Þakka þér.
>> CAMILLE REKHSON: Já.
Aðrar spurningar um það eitt?
OK, þannig að við skulum reyna næsta einn þá aukastaf að tvöfaldur.
Svo að taka 50 og setja það í tvöfaldur.
Hvernig myndir þú gera það?
Já.
>> Áhorfendur: 110.010.
>> CAMILLE REKHSON: Já.
Svo one-- auðveld leið til að hugsa um umbreyta frá aukastaf til tvöfaldur
er to-- það hjálpar oft að skrifa út hvað mismunandi völd 2 eru.
Og þá fara í gegnum það, og sjá hvað hæsta einn af þeim
er að þú getur sett í til heiltala án þess að fara yfir það.
>> Þannig að í þessu tilfelli, einn af vald 2 er 32.
Svo 32 fer í 50.
En næsta máttur upp væri 64, sem augljóslega passar ekki inn í 50.
Svo er hæsta við höfum 32.
Næsta einn niður í 16.
Og 32 plús 16 er aðeins 48.
Svo að enn passar inn 50.
Þannig að við höfum 1 í bæði þeirra.
Og þá ef við höldum að fara niður, það eina sem við þurfum vinstri
er 2 meira til að fá frá 48 til 50.
Svo þá höfum við 1 í þeirri stöðu, og 0 í neðstu stöðu.
Vegna þess að það er ekkert í að 2 til 0-sæti.
Spurningar um að breyta aukastaf tveimur?
>> Svo nú skulum reyna að gera sumir tvöfaldur viðbót.
Hvernig þegar þú bætir við þá tvo upp?
Já.
>> Áhorfendur: 11100.
>> CAMILLE REKHSON: Já.
Svo er að gera viðbót í tvöfaldur nokkuð mikill the sami eins og að gera það í aukastaf.
Nema ef þú hefur tvær 1 er velferð bætt saman, 1 plús 1 er 2,
en 2 í tvöfaldur er 1 0.
Þannig að þú þarft að bera 1, og halda flytja það fyrir þá nokkra dálka.
Og annað en það, bara bæta venjulega.
Einhverjar spurningar um það?
Já.
>> Áhorfendur: Því miður, það er síðasta sæti?
Það er sex tölur.
Svo dálknum lengst til vinstri, hvaða gildi er það?
CAMILLE REKHSON: Á þessum botn einn?
Áhorfendur: Á efstu einn, fyrir 50.
CAMILLE REKHSON: Fyrir 50?
Ó, svo lengst til vinstri er einn 32.
>> Áhorfendur: 32?
>> CAMILLE REKHSON: Já, svo það myndi vera 32, 16, þá 8, 4, 2, 0-- eða 1.
Jæja, það er 2 í zeroth, sem er 1.
Já.
Aðrar spurningar um þetta?
OK, svo þá erum við að fara að gera svolítið með sextánskur.
Þannig að þetta gæti verið svolítið minna þekki,
vegna þess að ég veit að við höfum gert a einhver fjöldi fleiri með tvöfaldur.
En mjög góð leið til að hugsa um sextánskur
er að brjóta upp tvöfaldur Fjöldi í 4 bita klumpur.
Því að hver 4 bita af a tvöfaldur fjöldi er í grundvallaratriðum
einn af sextánskur númer.
>> Svo ef við höfum þetta fyrstu, við höfum í grundvallaratriðum átta 1 er.
Svo þá er hægt að skipta up--
>> Áhorfendur: 255.
>> CAMILLE REKHSON: Segja það aftur.
Áhorfendur: 255 í aukastaf, eða 0xff í sextánskur.
CAMILLE REKHSON: Já, er það.
Svo, ef þú hættu að upp í tveimur 4-bita bitum,
við höfum í grundvallaratriðum fjórum sinnum 1.
Sem er maximum-- grundvallaratriðum hámarks
við getum fengið með 4-bita í tvöfaldur.
Og hámarks við gætum fengið fyrir að í sextánskur væri F.
Svo við myndum hafa tvær F er.
Einhverjar spurningar um það?
Já?
>> Áhorfendur: Getur þú endurtaka það.
CAMILLE REKHSON: Jú.
Svo að hver, í grundvallaratriðum, staður sextánskur er
jafngildir i 4-bita í tvískiptri.
Svo auðveldasta leiðin til að gera þetta er að brjóta það upp í 4 bita klumpur.
Þannig að í þessu tilfelli höfum við átta 1 er.
Þannig að ef við hættu þá í tveimur 4-bita bitum,
við hefðum tvö sett af fjórum 1 áratugnum.
Og hver og einn af þeim jafngildir F.
Ef þú heldur about-- Ég veit gáfur okkar eru
konar hlerunarbúnað að hugsa meira um aukastaf,
því það er það sem við erum að venjast.
Svo ein leið sem þú gætir hugsað það sem fjögur 1 er jafnt og 15 í aukastaf.
Og 15 í sextánskur er F. Svo er Önnur leið sem þú getur hugsa um það.
Já.
>> Áhorfendur: Hvað er 0x fyrir?
>> CAMILLE REKHSON: The 0x merkir að það er sextánskur.
Þannig að við settum bara að forskeytið þar, venjulega.
Aðrir spurningar um það.
OK, þannig að við skulum reyna að fara á hinn veginn þá.
Í þessu tilfelli erum við have-- hryggur?
Áhorfendur: [inaudible].
CAMILLE REKHSON: Við erum að fara að tvöfaldur.
Svo, fara í hina áttina.
En í þessu tilfelli höfum við 5 og A. Svo ef við hugsum um þetta,
ef hver those-- 5 og A eru bæði að fara til að tákna 4-bita klumpur,
hvernig myndir þú segja 5 í tvöfaldur?
>> Áhorfendur: 0101.
>> CAMILLE REKHSON: Já, svo það er 0101 hluti.
Og þá hvernig myndir þú segja A in--
>> Áhorfendur: 10.
CAMILLE REKHSON: Segja it-- hryggur?
Áhorfendur: 10.
CAMILLE REKHSON: Já, svo það er seinni hluti af því.
Og þá, ef þú setur þeir tveir saman, það er
hvernig þú færð fullt tvöfaldur fyrir sextánskur.
Já?
>> Áhorfendur: Að vita að A er 1010, þú þarft að leggja á minnið það?
Eða getur þú like--
>> CAMILLE REKHSON: Svo ef you-- að differe-- svo
þegar þú ert að fara í gegnum tvöfaldur, í grundvallaratriðum tvöfaldur
hefur 0 til 9 og þá a gegnum F að 16 hlutum þess.
Svo ef alla leið 0 til 9-- ef you-- 9 og þá A, í grundvallaratriðum
ef við breytt það í fjölda, A væri eins 10, B væri eins 11.
Og ef þér finnst um það tvöfaldur 1010 er 8 og 2,
vegna þess að þeir eru tveir stöðum sem bæta allt að 10, sem
er einmitt það sem A jafngildir.
Svo er það góður af auðvelt leið til að hugsa um það.
Aðrir spurningar um sextánskur.
>> OK, svo nú erum við að fara að taka a líta á Bita rekstraraðila.
Svo þetta getur örugglega koma upp á spurningakeppni.
Ég veit að við höfum ekki unnið með þeim mikið.
En við erum bara að fara að gera smá endurskoðun þeirra.
Svo vonandi munu vera svolítið meira þekki þig.
Svo sex Bita rekstraraðila sem við höfum eru hér.
Og þeir láta okkur vinna einstök bita.
Svo og rekstraraðili er einn merkið.
Ekki rugla því við tvöfaldur merkið,
sem er rökrétt og að leyfir okkur saman tvennt.
>> Einn og er hvernig við getum vinna hlutina Bita.
Svo gefur þetta okkur niðurstöðu 1 ef bæði af rökum sem við erum að bera saman
eru same-- eða eru 1.
Og lóðrétt strik, OR, mun gefa US 1 ef að minnsta kosti eitt af þeim er 1.
Svo í rauninni nákvæmlega hvað orð gefa til kynna.
Og ef tveir bitar eru 1, 1 og 1 gefur okkur 1.
En með eða, ef það er 0 eða 1, eða 1 eða 1, í báðum tilvikum,
Við höfum 1 eins og að vera einn af þeim.
Svo þá myndum við fá 1.
Áhorfendur: Hvað meinarðu að það segir það gefur 1?
>> CAMILLE REKHSON: The úrslit. Konar, eins og þú
would-- ef þú gerðir 0 og 1, Niðurstaðan af því yrði 1-- eða 0
og 1 með þeim afleiðingum að sem myndi vera 0, því miður.
Já, það var góður af afleiðing af tjáningu.
Og þá, þetta bendillinn tákn er XOR, eða einkarétt OR.
Svo það þýðir eingöngu einn eða nákvæmlega einn af tveimur rök er jafnt og 1.
Og þá það myndi gefa þér 1.
>> Litli hlykkjóttu línu er EKKI stjórnandi.
Svo ólíkt the hvíla af þeim, sem starfa á a par af bitum,
sem EKKI stjórnandi tekur aðeins einn hluti, og snýst það.
Svo ef þú give-- ef þú gerir EKKI 0, það myndi gefa þér 1.
Og ef þú ert ekki 1, það myndi gefa þér 0.
Já?
>> Áhorfendur: Hver er munurinn milli eða með einni línu
og eða með tveimur?
CAMILLE REKHSON: Svo OR með tvær línur er rökrétt OR.
Svo er það að bera saman svo tvö heiltölur eða two--
til að sjá hvort það eru jafnir.
Eða eins og að gera þetta er jafh þeim, OR er jafn þessari tegund hlutur.
En einn bar eða, er að gera hlutina Bita.
Já.
>> Áhorfendur: Hvað áttu við með Bita?
>> CAMILLE REKHSON: Svo Bita er að vinna beint við bitum í tvöfaldur.
>> Áhorfendur: Oh, ég sé.
>> CAMILLE REKHSON: Já, svo vinna með 0 og 1 er.
Við munum gera nokkra dæmi um þetta eftir, bara svo það er ekki of ruglingslegt.
Og þá síðustu tveir eru VINSTRI SHIFT og rétt vakt.
Sem eru í grundvallaratriðum tvær minna en merki eða tveimur meira en merki.
Og þeir færst til hluti sem gefin tala af stöðum
að þú gefa það í þá átt.
Þannig að það myndi annað hvort skipta henni til vinstri eða hægri.
Já?
Áhorfendur: Hvað er setningafræði til að keyra?
>> CAMILLE REKHSON: Við erum að fara að fara í gegnum td í sekúndu.
Svo vonandi, sem mun hjálpa.
Einhverjar spurningar um rétt hvað er upp hér, before-- OK.
Svo að fara í gegnum nokkur dæmi.
Við skulum byrja með AND sjálfur.
Hvað myndum við fá ef við gerðum 0 og 1?
>> Áhorfendur: 0.
CAMILLE REKHSON: OK, og ef við gerðum 1 og 1?
Áhorfendur: 1.
CAMILLE REKHSON: Já, hvað ef við gerðum 0 eða einn?
Áhorfendur: 1.
CAMILLE REKHSON: Hvað um 1 eða 1?
Áhorfendur: 1.
CAMILLE REKHSON: OK, hvernig væri 0 XOR 1?
Áhorfendur: 1.
CAMILLE REKHSON: And 1 XOR 1?
Áhorfendur: 0.
CAMILLE REKHSON: Þú krakkar eru góð.
Hvernig væri EKKI 0?
>> Áhorfendur: 1.
CAMILLE REKHSON: Og ekki 1?
Áhorfendur: 0.
CAMILLE REKHSON: OK, og þá er þetta síðasta einn er a lítill einn með að breytast.
Þannig að ef við setjum upphaflega x að vera 8 og þá er y x færst til vinstri 3,
hvað myndi það gefa okkur?
>> Áhorfendur: [inaudible].
CAMILLE REKHSON: Segja það aftur.
Áhorfendur: [inaudible].
CAMILLE REKHSON: Svo, þetta reyndar gefur okkur 64.
Áhorfendur: [inaudible].
CAMILLE REKHSON: Þannig að ég er bara að fara að skrifa þetta upp hér,
þannig að þetta gerir smá skilningi.
Ef við höfum 2 til 0, 2 til 1, 2 til 2, 2 til 3 er að fara að vera 8.
Og ef við viljum skipta í 3 fleiri bita til vinstri, sem myndi vera 2 til 4,
2 til 5, og 2 til 6, og 2 til 6 er 64.
Er að vit?
Já.
>> Áhorfendur: Er að breyting allar 1 er og 0 í tvöfaldur fjöldi til the--
>> CAMILLE REKHSON: Já.
Og þú þarft ekki að hafa áhyggjur á quiz um þetta er neikvæð.
Við munum ekki gera þér að takast á við neikvæð breyting á nokkurn hátt.
Aðrar spurningar um þetta?
Já.
>> Áhorfendur: Ef það er að breytast til hægri, er eitthvað sem wasn't-- neitt sem
var ekki upphaflega hluti af hlutur 0?
>> CAMILLE REKHSON: Já, þú myndir bara bæta 0 er á í upprunalegu.
Já.
>> Áhorfendur: Svo er það 100 sem færst til hægri þrisvar?
CAMILLE REKHSON: 100 færst til hægri,
svo það myndi taka allt af 1 og 0 og bara skipta þeim
til hægri eins oft og þú það til að skipta til hægri.
>> Áhorfendur: [inaudible]?
CAMILLE REKHSON: Jæja, eru 100-- að tala um 100 í tvöfaldur,
eða 100 í aukastaf?
Áhorfendur: Fyrirgefðu, 100 í tvöfaldur.
>> CAMILLE REKHSON: 100 í tvöfaldur, ef þú skiptir það til right--
ef þú skiptir til hægri einu sinni, myndi það verða 10.
Ef þú skiptir það til hægri tvisvar, það yrði 001.
Og þá ef þú skiptir það aftur, þú konar missa hluti.
Já, það er bara 0.
Aðrar spurningar um þetta?
Já.
>> Áhorfendur: Svo þá verður 000.
>> CAMILLE REKHSON: Já.
OK, þannig að við skulum fara í gegnum a smá ASCII stærðfræði.
Svo stafir getur í raun að meðhöndla eins og heiltölur
byggt á ASCII gildi þeirra.
Þannig að ef við sátum INT A jafngildir 65, int B jafngildir A plús 1, int bleikju C jafngildir
D mínus 1, og viðarkol, D jafngildir 68, hvað myndi prenta út neðst?
>> Svo erum við að prenta these-- blessa you-- við erum
prentun þetta allt út eins og Chars miðað við prósent C.
Þannig að við erum í rauninni að prenta út eðli gildi öllum fjórum
þessara breyta.
Sem vott, 65 er ASCII gildi fjármagns A. Kannski hjálpaði það.
Hvað?
>> Áhorfendur: ABCD.
>> CAMILLE REKHSON: Já, svo þetta myndi prenta út nákvæmlega
ABCD vegna við setjum int A jafnt ASCII gildi A.
Þannig að ef við prenta það út eins og a eðli, fáum við bara fjármagni,
A plús 1 væri höfuðborg B í ASCII.
D mínus 1 væri höfuðborg C í ASCII.
Og 68 er ASCII gildi D. Spurningar um ASCII?
Já.
>> Áhorfendur: Svo gæsalöppum utan A, þýðir það breyta til ASCII?
>> CAMILLE REKHSON: Það uses-- það count-- einn vitna í kringum A
gerir það eðli.
Og ef þú ert að takast á við það í fjölda form--
svo þegar, eins og í þessu tilfelli, það er meðhöndlaður sem er int--
þá myndi takast með það ASCII gildi.
Já.
>> Áhorfendur: Ert þú mæla með því að höfum við ASCII tilvísun borð?
>> CAMILLE REKHSON: Ég think-- ekki
>> Áhorfendur: Eða myndi það aðeins að takast á við þetta?
>> CAMILLE REKHSON: Ég held að við myndi gera það með einföldum hlutum.
Ég held ekki að það myndi meiða til að skrifa niður kannski
hvað höfuðborg A og lágstafir A eru bara hvað þessir svið eru að byrja með.
En ég held ekki að þú þarft að taka allt pláss til að setja alla ASCII töflu.
Já.
>> Áhorfendur: Hver er munurinn milli segja int A og bleikju C,
eins og þú gerir efst?
>> CAMILLE REKHSON: Svo það er bara hvernig sem er geymd í minni.
En þú getur meðhöndla það hvort vegur.
Eins og við sjáum hér, gera við prenta út A sem persónu.
Áhorfendur: Svo er það sama og A?
CAMILLE REKHSON: Já.
Aðrar spurningar?
>> Áhorfendur: Svo prósent C er að segja prenta char?
>> CAMILLE REKHSON: Já.
>> Áhorfendur: Svo jafnvel ef A hefur aðeins verið skilgreind sem heiltala,
ef við reynum að prenta a bleikju sem 65, would-- það
CAMILLE REKHSON: Það myndi fara til grundvallaratriðum fer til ASCII töfluna
og fær hvað sem stafi í ASCII graf fyrir 65.
>> Áhorfendur: Þakka þér.
>> CAMILLE REKHSON: Já.
Já?
>> Áhorfendur: Svo ef þú gerðir% i,% I, % I,% I, það myndi bara print--
CAMILLE REKHSON: Já, ef þú gerðir allt 4% I er, það
myndi prenta út ASCII Gildi öllum fjórum þessara.
Aðrar spurningar?
OK, svo umfang, í grundvallaratriðum þetta hjálpar okkur að ákvarða hvar
breytu er í forritinu.
Þannig að við höfum talað um tvo mismunandi tegundir umfang, hnattrænum og staðbundnum.
>> Ef breyta er á heimsvísu scoped, það þýðir allt program
hefur aðgang að breytunni.
Og ef þú heimsvísu Umfang breytu, þú
lýsa það áður meginvirkni þinn.
Svo það er gert strax the kylfa.
Og þá allt þitt Forritið er hægt að nálgast það.
>> Ef það er aðeins staðbundið scoped, sem breyta bundin við ákveðin svæði.
Svo ef þú lýsa innan fyrir lykkju, aðeins að fyrir lykkju getur nálgast það.
Eða ef þú lýsa innan ákveðna aðgerð,
bara að virka getur nálgast það.
Spurningar um gildissvið.
>> OK, svo virka prototyping.
Grundvallaratriðum vegna C, þegar það safnar, les ofan frá og niður.
Ef þú játar með aðgerð seint í kóðanum þínum,
þýðandinn veit ekki sem að virka fyrir hendi.
Svo það sem við notum eru frumgerðir, sem í grundvallaratriðum segja þýðanda,
þessi aðgerð til, farðu líta fyrir það síðar í kóðanum.
Svo leið að þú gerir fall frumgerð
er nákvæmlega hvernig þú byrjar burt skrifa virka.
Þú gefur aftur gerð, nafn virka,
og þá hvaða rök sem að virka tekur.
>> Svo, til að líta á a fljótur dæmi, í þessu Case fallið sem við erum með hér
er í grundvallaratriðum a teningur virka.
Svo að taka í heiltala og skila teningur þeirrar tölu.
Það vegna þess að við höfum skrifað að virka undir meginvirkni,
og við viljum að nota framleiðsla that-- eða við
vil að virka í meginvirkni okkar,
við setjum frumgerð leið sína efst á dagskrá okkar.
Og svo þegar við köllum það í meginvirkni okkar,
þýðandinn veit að það virka er skrifað síðar, og mun fara leita að því,
og mun nota það rétt.
Spurningar um prototyping?
Já.
>> Áhorfendur: Svo hvað er málið?
Ég fæ ekki að benda á prototyping.
Hvers vegna ekki bara að hafa það þarna niðri?
>> CAMILLE REKHSON: Jæja, ef það er hérna, svo þegar
þú færð að stilla teningur af x í meginvirkni þinn,
þýðandinn mun ekki hafa hugmynd um að teningur virka í raun til.
>> Áhorfendur: Gat ekki þú bara setja það fyrir framan?
>> CAMILLE REKHSON: Það er betra erfðaskrá æfa
að setja það undir meginvirkni þinn.
Svo það er hvers vegna við gerðum gera prototyping.
Bara vegna þess, ef þér hafði mikið af störfum,
það væri mjög sóðalegur til lesa í gegnum alla þá virka
áður en þú færð að kjöt af forritinu.
Já, og þú hefðir q--
>> Áhorfendur: Svo er að lýsa breyta þinn upp efst
svo þú getur nálgast það, gera það global breyta?
Er að svipað þessu þar sem það er að lýsa það
upp þar, þannig að það veit að það er að fara að opna það seinna
og þú getur notað það?
>> CAMILLE REKHSON: Já.
Já.
>> Áhorfendur: Ætti the-- allir viðbótar aðgerðir sem þú búa til lykil utan
þessi orð, or--
>> CAMILLE REKHSON: Já, ef þú ert skapa annað functions-- Main
sjálft er function-- svo ef þú ert að búa aðrar aðgerðir,
þeir ættu að vera úti.
Já?
>> Áhorfendur: Hvað er prósent D?
CAMILLE REKHSON: Hlutfall D er sama og prósent I.
Það vísar til heiltala.
Já.
>> Áhorfendur: Svo er það int helstu gera?
Hvað var það ógilt?
CAMILLE REKHSON: Void segir það tekur á engin rök.
Áhorfendur: [inaudible].
CAMILLE REKHSON: Getur þú tala smá hávær, því miður?
Áhorfendur: Já, því miður, af hverju gerði þú setur ógilt í fyrsta einn,
og þá int inntak fyrir þann seinni?
CAMILLE REKHSON: Ó, að tveir different-- fyrir meginvirkni
móti teningur virka?
Svo í the aðalæð virka, við notum ógilt vegna þess að það
Engar breytur sem eru gerðar í.
En í teningur virka, höfum við inntak.
Það er hvers vegna það segir int, inntak, vegna þess að það eru rök að við erum
taka í að keyra fallið.
Já.
Eru það eru spurningar?
>> OK, og þá fljótt fljótandi-lið ónákvæmni.
Þannig að við höfum óendanlega margar rauntölur.
En það eru aðeins endanlega fjölda bita
að við getum notað til að sýna þeim tölur, og tákna þau.
Svo þá við enda upp með sumir ónákvæmni.
Og númer þitt verður ekki alltaf að vera alveg nákvæmlega hvað
þú heldur að þeir eru þegar þú ert takast á við fljótandi punkta.
Þetta er bara eitthvað gott að vita.
Spurningar um þetta?
Já.
>> Áhorfendur: Er þetta vísa að hugmyndin um bita flæða
sem var í fyrirlestri?
Var að eitthvað skilja?
>> CAMILLE REKHSON: Þeir eru fullkomlega aðskilin, já.
OK, frábært.
Pulak Goyal: Hi, allir.
Mitt nafn er Pulak, og ég ætla að vera að fara yfir ábendingum.
Fyrst hugsa OK, þannig að við skulum um hvað minni lítur út.
Svo eins og þú sérð hér, við taka minni og við skipta því upp
í fullt af blokkum.
Og við tilvísun hver loka á eftir heimilisfangi, ekki satt?
Og er einhver man hvaða tegund af ritháttur við notum til að lýsa netfang?
>> Áhorfendur: sextánskur, 0x.
>> Pulak Goyal: sextánskur, ekki satt?
Svo þýðir 0x við erum að tala um sextánskur.
OK, svo hvernig við að búa ábendingum?
Svo við tökum gerð, við setja it-- bæta stjörnuna við það,
og þá erum við að bæta breytu nafn.
Svo dæmi sem við höfum séð eru INT Star X, CH stjörnu Y, og fljóta byrja z.
Svo þegar ég segi INT stjarna x, getur einhver sagt mér
hvað ég er góður af að tala um það?
>> Áhorfendur: Staðsetning diskinn.
>> Pulak Goyal: Því miður, hvað?
Getur þú endurtekið þetta?
Áhorfendur: Staðsetning diskur.
>> Pulak Goyal: Svo actually-- svo hvað Ég ætlaði, er þegar við höfum int stjörnu x,
við erum að segja er að búa bendi, og það
getur geymt veffang a breyta sem er int, ekki satt?
Svo með bleikju stjörnu Y, við erum að búa bendi
sem getur geymt tölu breytu sem er bleikju.
Þannig að skynsamleg að allir?
OK, flott
>> OK, svo með ábendingum, það eru tvö mikilvæg aðgerðir sem við getum gert.
Það er tilvísun, og það er dereferencing.
Já?
>> Áhorfendur: Gætirðu farið svolítið hægar?
>> Pulak Goyal: Jú.
Já, so-- já, spyrja spurninga sem ég fer með ef you-- ef eitthvað er óljóst.
Þannig að við höfum tilvísanir og dereferencing.
Svo þegar þú vilt fá heimilisfang breytu, þá nota merkið.
Svo skulum segja að ég lýsti int x einhvers staðar.
Og ég vil fá tölu sem og gefa það í, ég myndi gera merkið x.
Og þegar þú vilt fá gildi í tengslum við músina,
þú notar dereference rekstraraðila, sem er stjarna.
>> Svo skulum segja að ég hafði int stjörnu x, og Ég hafði það bendir til eitthvað.
Ef ég vil fá á gildi þess sem það er bendir til, ég myndi bara gera stjörnu x.
Er það ljóst?
Einhverjar spurningar um það?
Já.
>> Áhorfendur: Svo almennt, þér mun ekki vera fær um að gera á x og stjarnan
x með sama x.
Er það rétt?
Vegna þess að ef X er breyta, þá verður þú
að gera á x til að fá að það er bendi.
En ef x er bendi, þá þarftu að gera stjörnu x til að fá breytu.
>> Pulak Goyal: Já, svo Spurningin var um þegar
gera við nota star-- þegar myndir þú nota stjörnuna,
og þegar við notum merkið, og getum við
nota það með sömu tegund breytu?
Svo yfirleitt ef þú ert, Til dæmis, er int x,
þú vildi aðallega að nota merkið til að fá heimilisfangið af því.
Vegna þess að það er ekki að gera vit í að virðingu í x.
En ef við hefðum INT stjörnu x, þú vilt vera með dereference rekstur
vegna þess að það myndi gera ekkert vit að nota á x í því tilfelli.
Er að vit?
>> Áhorfendur: Svo þú getur ekki og, og þá bendi?
Pulak Goyal: Svo þú tæknilega, reyndar
getur gert merkið á músina.
En það er út af Umfang þessum flokki.
Fyrir purpose-- fyrir krakkar þinna tilgangi, þegar þú ert ábendingum,
þú vilt nota dereference rekstraraðila til að fá gildi í tengslum við það.
Og þegar þú ert venjulegur breytur, eins og int x,
þú vilt nota merkið rekstraraðila til að fá tölu sem.
OK?
>> OK, þannig að við skulum líta á ábendingum og hvað gerist undir hetta.
Svo er það fyrsta sem ég gerði hér uppgefið int x er jafnt og 5.
Heimilisfangið þessarar breytu er 0x04, og gildið er 5.
Svo skulum sjá hvað gerist með næstu línu.
Svo nú erum við að lýsa yfir músina.
Netfang hennar er 0x08, og þess gildi er heimilisfang x.
Er að skynsamleg að allir?
Einhverjar spurningar um það?
>> OK, og nú skulum sjá hvað gerist með næstu línu.
Svo með þetta í næstu línu, höfum við veffang afrit vera 0x10,
og gildi þess er 5.
Þannig að ástæða við fengum fimm er ég sagði, við dereference
músina, sem við lýst int stjörnu.
Og svo það went-- þegar við dereference það, það sagði, OK, hvað er í rifa 0x04.
Og það fór að því.
Og hvað x er x0-- 0x04, og gildið er 5.
Er að skynsamleg?
Já?
>> Áhorfendur: Hvers vegna er heimilisfang á eintak er bara 4 bytes ofan x músina?
>> Pulak Goyal: Já, þetta er mistök on--
>> CAMILLE REKHSON: Svo, já, muna þetta er skrifað í sextánskur.
Pulak Goyal: Ó, já.
CAMILLE REKHSON: Þannig að þetta er í raun 8 og þá 16
vegna þess að við sagði að bendillinn, muna,
í IDE okkar er að fara að vera 8 bæti.
Pulak Goyal: Já.
Svo bara að vera skýr, ábendingum 8 bæti.
Int er 4 bæti.
Svo ástæðan hvað stökk frá 0x04 til 0x08
er vegna þess að við þurftum að gera stökk 8 bæti.
Og þá for-- síðan eftirlíking er bara int,
það er 4 bæti, sem er helmingur af 8 bæti.
Þannig að við að hoppa bara til 0x10, sem er tvisvar í burtu frá 0x08.
Aðrar spurningar?
OK, let's-- já?
>> Áhorfendur: Hvers vegna er ekki gildi int afrit
bara the-- hvers vegna er það 5 í stað 0x04?
>> Pulak Goyal: OK, hvers vegna er það 5?
OK, þannig að þegar the-- skulum svo fyrst hugsa um þetta í skilmálar af gerðum.
Þannig að ég ætla að segja int afrit er jafn músina stjörnu.
Svo er það tegund af músina?
Það er int stjarna.
Og þegar ég dereference að gerð verður int.
Svo það sem við búast við að geyma hér er í raun int.
Er að skynsamleg?
Áhorfendur: Jú, svolítið.
Pulak Goyal: Svo yfirleitt þegar þú hugsa í skilmálar af gerðum,
það hjálpar þér að skilja hvað er tegund af verðmæti sem ætti að fara þar.
Svo þú getur venjulega útiloka a einhver fjöldi af þessum algengar villur
með því að hugsa í skilmálar af gerðum.
Leyfðu mér að fara í gegnum a lítill fleiri glærur.
Og við getum fengið spurningar á the endir af the músina kafla.
OK, þannig að við höfum þrjótur forrit hér.
Og svo er anyone-- getur einhver sagt mér hvað er athugavert við þetta forrit?
Einmitt, svo hvað við erum búast við að gera hér
is-- hvað við viljum gera er að taka breyta int x
og snúa it-- gera það jafn 5 í stað 3 og þá prenta það.
En það er ekki að gerast.
Getur einhver sagt mér hvers vegna?
Já?
>> Áhorfendur: Þegar aðgerð to_five tekur x eins og það er rök,
það tekur ekki x sjálfu sér, en í stað þess skapar afrit, A, af því.
Og myndar starfsemi á því.
En af því, þú ert ekki breyta verðgildi x.
Þar sem þú ert [inaudible].
>> Pulak Goyal: Hægri, rétt, þannig að þegar við köllum
virka to_five, hvað við erum að gera er að hugsa,
gefa mér afrit af gildi að því virka.
Það virka, þá er að fara og gera sumir meðhöndlun.
En þegar það skilar, það er nú út umfangs the aðalæð virka hér.
Og svo x er enn, í raun, jafnt 3, og við prentað 3.
OK, þannig að við skulum sjá hvernig þetta gerist.
>> OK, þannig að það er ekkert lýst.
Þá, hér, x er jafnt og 3.
Og nú is-- það á stöðu tvö og tvö, er enn ekki að umfangi.
Og nú erum við að fara til staða þrjú, þar sem nú er gert ráð fyrir gildi 3.
Á fjórum, breyting við nú til 5.
En nú, þegar við að hoppa til baka fimm, sem er prenta yfirlýsingu,
a er nú út af umfangi.
Og X er enn jafnt 3.
Er þetta skynsamleg alla?
OK, svo nú skulum við tala um hvernig við getum notað ábendingum til að laga þetta.
Hefur einhver hefur einhverjar hugmyndir hvernig við gæti lagað þetta með því að nota ábendingar?
>> Áhorfendur: Þú tekur í int stjörnu í stað þess að int fyrir to_five.
>> Pulak Goyal: Því miður, þú getur talað upp?
>> Áhorfendur: Þú tekur í int stjörnu í stað þess að int fyrir to_five.
Pulak Goyal: OK, já.
Svo skulum pass-- stað brottför bara gildi, við skulum gefa það með tilvísun.
Þessi nýja aðgerð, ekki satt?
Og svo með því að hleypa heimilisfang í, við getur gert meðhöndlun á heimilisfang.
Og svo við erum í raun og veru, í raun að breyta x.
Svo skulum sjá hvernig það virkar.
>> OK, svo í þessu dæmi við fastur það.
Við höfum breytt undirskrift okkar af to_five að taka í int
stjörnu í stað þess að vera int hér.
Þá erum við dereference þetta a og tengja 5 til þess.
Og nú mun þetta í raun prenta 5.
Þannig að við skulum sjá hvernig skref vinna hér.
>> Svo með fyrsta skrefið, það er ekkert lýst enn.
Svo hér, með öðru þrepi, við höfum sagt x er jafnt 3,
en er samt út af umfangi.
Nú eftir þriðju línu, höfum við x er enn jafn þremur.
Og nú höfum við staðist in-- hvað er geymd í er nú heimilisfang x.
Er að skynsamleg að allir, hvernig við fengum það?
Hægri, höfum við amper-- sem er hvernig við staðist merkið x í aðgerð
to_five.
Og þá í næstu línu, hvað við gerum, er við dereference a.
>> Og með því að dereferencing a, við erum fær um að breyta gildi x 3 til 5.
Vegna x býr á þetta netfang 0x12.
Og þá loks þegar við aftur til baka til main,
þó þetta er nú út af umfang, við höfum í raun breyst x.
Og það er 5.
Einhverjar spurningar um þetta?
Já?
>> Áhorfendur: Getur þú sagt mér hvað merkið x var?
Ég hélt merkið var eins og.
>> Pulak Goyal: Já, svo við notum sömu Táknið fyrir mörgum mismunandi hlutum.
Svo hér, þegar þú have-- í þetta mál, þegar þú hefur,
Ég guess-- þannig að í þessu tilfelli, þegar þú ert að takast á við ábendingum,
þegar þú setur merkið framan af int, breytilegum INT, eða bleikju,
eða flæði, hvað þú ert að segja er, gefa mér heimilisfang þessu.
En hvað þú varst að hugsa um, þegar annað þú myndir nota merkið er, við skulum segja,
í if yfirlýsingu.
Þú ert sannur, og sumar breytur sem meta að einhverju Boolean,
og nokkrar aðrar breytur að staðfesta sumir Boolean
og þú vilt fá sem og af því.
Síðan sem þú myndir nota merkið.
Ræðumaður 1: Já, svo bara í dag, höfum við talaði um þrjú mismunandi notkun
af merkið.
Við höfum tvær -merkið, sem er hvað Pulak hefur bara lýst.
Við höfum eina merkið sem er það Camille lýst
fyrr, sem er eitt merkið.
Og það er fyrir Bita OG.
Og eftir að bæði skilyrt AND-- eða, hryggur,
rökrétt og og Bita AND, hafa þeir tvær tölur, ekki satt?
Það var eitthvað merkið merkið eitthvað,
eitthvað merkið eitthvað.
Hér, þegar við höfum bara merkið eitthvað, sem er dereferencing.
>> Pulak Goyal: Já, mikil spurning.
Já.
>> Áhorfendur: Hvers vegna í línu 5a og stjörnumerkja verða N / A?
Hvers vegna gera þeir ekki bara svona halda í sömu gildi frá fyrri línu?
>> Pulak Goyal: Vegna við höfum lauk aðgerðina.
Og svo hvað happens-- svo what-- nú erum við
utan umfangs að virka, hvað gerist í raun
er þeir eru fjarlægðir úr minni.
Já.
>> Áhorfendur: Milli 3 eða 4 stjörnu a er 5.
Pulak Goyal: Já.
Áhorfendur: Hvað þýðir það nákvæmlega tákna?
Pulak Goyal: Hvað þýðir það?
Áhorfendur: Já.
Pulak Goyal: Svo Spurningin var, hvað er
that-- hvað ert þú að gera á netinu þegar við segjum, stjarnan er jafnt og 5?
Svo man stjörnuna á dereference rekstraraðila.
Þannig að þegar, í þessu tilfelli, er bendi.
Það er int stjarna.
Svo þegar við dereference a eftir með stjörnuna, hvað við erum að segja
er farið að hvað sem er geymd í heimilisfang, geymd í a-- svo take-- svo,
núna er, sumir heimilisfang geyma í henni.
Fara á hvar þessi heimilisfangi benda til, og nú breytt hvað sem er til fimm.
Já.
>> Áhorfendur: Getur þú sagt það í einfaldari hugtökum?
Breyta heimilisfangi a til 5.
>> Pulak Goyal: Við erum ekki breyta veffang til 5.
A hefur einhverja tölu í það, sem er heimilisfang breytu af áhuga.
Og svo það sem við erum að segja þegar við dereference er,
nú viljum við change-- við erum nú að vísa
áhugi breytu beint.
Er að vit?
>> Ræðumaður 1: Önnur leið til að hugsa af því er go-- svo er verið heimilisfang.
Stjarnan segir fara til að heimilisfang og líta á gildi þess.
Og nú setja gildi þess til 5.
Svo það segir, fara í heimilisfang af x, sem
er að fara að vera það sem er vistað í, og breyta því í 5.
Pulak Goyal: Já?
Áhorfendur: Svo er staða þar bendillinn er að fara, á netfangið.
En gildi er úthlutað gildi byggt á heimilisfang.
Pulak Goyal: Já.
Aðrar spurningar um þetta?
Áhorfendur: Ég er með spurningu.
Pulak Goyal: Já, því miður.
Áhorfendur: Svo þegar þú store-- svo ef þú ert að segja [inaudible] a.
Pulak Goyal: Já.
Áhorfendur: Þarf að geyma X merkið?
Hvers vegna er ekki hægt að segja bara x áður int þinn [inaudible]?
Pulak Goyal: So--
Áhorfendur: [inaudible].
Pulak Goyal: er svo question-- Oh.
Svo spurningin er, hvers vegna er ekki hægt að we-- að virka to_five, hvers vegna getum við ekki
bara fara x, ekki satt?
>> Áhorfendur: Hægri.
>> Pulak Goyal: OK, já, svo þetta aftur fer aftur til umræðu okkar um gerðum.
Svo virka to_five er nú von á tegund INT stjörnu.
Svo er það tegund af x?
X er bara int.
En hvað þessi aðgerð ráð er int stjarna.
Svo það ráð breytu sem hefur heimilisfang geymdar í það.
Svo er það hvernig you-- setja merkið, og svo er það
hvernig við framhjá í heimilisfang, sem er now--
og að túlkar sem sem int stjarna, já.
Frábær spurning.
Aðrar spurningar um þetta?
OK, flott.
>> OK, svo nú skulum við tala um músina tölur.
Svo hér, bæta við og draga Ég stillir músina
eftir i sinnum the stærð af tegund músina bæti.
Svo skulum líta á hvernig það lítur út.
Svo hér höfum við lýst int x jafngildir 5.
Og nú erum við að fara að lýsa yfir músina Y, og fara í heimilisfang x þar.
Þannig að við höfum það.
Svo x er geymt á 0x04.
Svo nú er y jöfn að.
Og getur einhver sagt mér hvað þeir hugsa mun gerast þegar við gerum Y plús er 1?
Já?
>> Áhorfendur: Mun það breyta til 0 sinnum 0 8?
>> Pulak Goyal: Stærð og type--
>> Áhorfendur: Þú ert að flytja á netfangið.
Pulak Goyal: Já það was-- já.
So-- rétt.
Svo það mun breytast til 0x08.
Og because-- svo þú vilt nota þetta uppskrift, 1 sinnum the stærð af the músina
og ábendingum um size--
>> [NEMENDUR Sextán]
>> Pulak Goyal: Hægri.
>> [NEMENDUR Sextán]
>> Ræðumaður 1: Svo gerð sem The Pointer stig to--
>> Pulak Goyal: Er, já, já, það er 4 bæti.
>> Ræðumaður 1: Svo ints eru 4 bytes.
>> Pulak Goyal: Svo ef við hefðum a-- skulum segja við lýst, ég held, char.
Hvað myndi that-- þannig að við skulum segja að við hafa Char x jafn eða eitthvað.
Og við höfðum veffang sem á 0x04, hvað myndi Y plús jafngildir 1 gera núna?
Því miður, hvað?
>> Áhorfendur: 0x05.
Pulak Goyal: 0x05, ekki satt.
Þurfa allir að sjá það?
OK, og nú skulum segja að það er fljóta.
Hvað myndi gerast?
Einhver?
Svo flýtur eru hversu margir bæti?
>> Áhorfendur: 4 bytes.
>> Pulak Goyal: Hægri.
Svo það væri það sama og þetta.
Cool.
OK, og nú skulum við tala um ábendingum og fylki.
Svo þú sást þetta á fyrri tveimur p setur,
þar sem við getum treat-- svo fylki og ábendingum eru ekki það sama.
En við getum meðhöndla fylki sem ábendingum.
Svo hér höfum við þetta fylki hér, sem hefur þrjár rifa.
Í fyrsta slot-- vér hefur einn, tvo og þrjá.
>> Svo ef we-- svo við getum tengt að með því að segja, við höfum fjölda,
dereference það.
Og svo þegar við dereference að, hvað við erum í raun að gera
er að vísa til sama rifa.
Svo stjörnu array jafngildir 1.
Við could- hvernig gat við að skrifa that-- hvað er
varamaður leið að við getum skrifað það?
>> Áhorfendur: Array 0 jafnt 1.
>> Pulak Goyal: Einmitt, er allir sjá að?
Svo sama á við hér.
Svo þegar við höfum fjölbreytta plús 1, do-- við svo even--
muna með tölur sem við bara talað um, þegar við gerum auk 1
eða færa það yfir af 4 bæti, ekki satt.
Þurfa allir að sjá það?
Og það hlið, þegar við dereference að við getum sett það í 2.
Og það er hvernig við setjum næstu blokk til 2.
Og svo varamaður leið til að skrifa sem myndi einnig vera array krappi
0 krappi er 1.
>> Áhorfendur: Þarft þú sviga?
>> Pulak Goyal: Já, vegna þess að þú ert dereferencing allt magn
array auk 1.
OK, og sama fyrir fylking plús 2.
Einhverjar spurningar um þetta?
Já.
Áhorfendur: Svo er array sjálfkrafa sett á 0?
>> Pulak Goyal: Array is-- hryggur, hvað?
>> Áhorfendur: Array er 0.
Heimilisfang array er bara 0.
>> Pulak Goyal: Svo spurningin var, er heimilisfang fylkisins bara 0?
Svo, nei, array hefur einhverja tölu.
Svo þegar við dereference það, that's-- svo þú getur hugsa about--
bókstaflega eins og músina bendir að í upphafi fylki.
Svo hefur það einhverja tölu.
Við vitum ekki hvað það er.
En þegar við dereference það, við vitum það er upphaf fylkisins.
Og svo þegar við færa frá 1, við erum bara að færa
miðað við hvar sem netfang var.
Aðrar spurningar?
Já?
>> Áhorfendur: Svo ef þú gerir array krappi auk 1--
Pulak Goyal: Því miður, I-- gætir þú tala upp?
Áhorfendur: Já, ef þú gerir array krappi [inaudible].
Svo þá ef þú setur pointer--
Pulak Goyal: Sorry, ég heyri ekki í þér.
Þú getur sagt það einu sinni enn?
>> Áhorfendur: Þú ert í lagi.
>> Pulak Goyal: OK, því miður.
OK, flott.
Any-- já.
Svo þegar þú ferð í array krappi 3--
>> Pulak Goyal: Já.
>> Áhorfendur: --isn't there-- myndi ekki það að vera fjórum blettum eins og 0, 1, 2, og 3?
Hvers vegna er það ekki int array 2?
>> Pulak Goyal: Nei, svo bara samningur af C is-- þegar við lýsa array,
we-- fjölda við að setja það er hversu margir rifa við viljum.
En vísitala array eru í raun og veru array 0, array 1, og array 2.
Svo það er bara samningur hvernig við lýsa fylki.
Já, önnur spurningar?
Já.
Áhorfendur: Þannig að við erum enn tala um ábendingum, ekki satt?
Pulak Goyal: Já.
Áhorfendur: Gætirðu gert enn stjörnu fyrir array 0 er 1?
Pulak Goyal: Nei, nei, so-- OK, svo spurningin var gat
þú bara stjörnu array krappi núll, og þá segja að jöfn 1.
Svo, nei, hvað við erum að segja hér er að við getum think--
við getum meðhöndla fylki sem ábendingum.
Þannig að við have-- hvað við erum orðatiltæki er að við höfum tvær leiðir
að nú Vísun í sama reitnum.
Svo doing-- ef þú hefur fjölbreytta núll, tegund sem er nú int.
Og ef þú tekur stjörnuna að þú færð ógilt hlutur.
Svo það sem við erum að segja hér, er það eru tvær varamaður leiðir
að vísa til sama reitnum.
Þú getur annað hvort gert array krappi 0 er 1.
Eða þú getur gert dereference array, og hafa að jafn 0.
Svo bara tvær leiðir gera slíkt hið sama.
Já.
>> Áhorfendur: Hvers vegna er það ekki stærð int 1 til að bæta to--
>> Pulak Goyal: Stærð int 1.
>> Áhorfendur: Vegna þess að það er að færa einn burt.
>> Pulak Goyal: Vegna þess að það er bara þannig C virkar.
Það er bara þannig bendillinn Reiknað er skilgreint.
Það verður að taka bendilinn.
Og þá hvað þú bæta á það, verður það margfalda það
af stærð hvað bendillinn verslun er, já.
Já.
>> Áhorfendur: Svo þú segir að við getum meðhöndla ábendingum og fylki sama,
en þeir eru öðruvísi.
Og hvað gerir þá öðruvísi?
Hvað getum við ekki gert með einn en ekki hinn?
>> Pulak Goyal: Að því er varðar þessa flokki, held ég it's-- hvað you--
>> Ræðumaður 1: Svo we-- OK, svo, að dæmi, ef þú úthluta minni
og þú hefur bendi heiltala, til dæmis.
Ef þú reyndir að byrja gera bendillinn tölur
og fara út magn af minni sem þú úthlutað, þú vilt keyra inn villur.
Við vitum með fylki, við segja á undan sinni, OK, ég
vilt allocate-- þessu fyrst og fremst segir, ég vil að úthluta
nóg pláss fyrir þrjá heiltölur.
Og svo nú getum við að meðhöndla minni eins og ef við höfum öll þrjú af þessum heiltölur.
Er svona skynsamleg?
>> Pulak Goyal: Já.
Já.
>> Áhorfendur: Svo stjarna array, er að framselja 1
til 0 vísitölu fylkisins?
Pulak Goyal: Já.
>> Áhorfendur: Svo, hvað er eftir Næstu tvær línur hvað varðar the-- I
skilja að þú ert að reyna að nota músina tölur hér,
en aftur, ég skil ekki hvað bendillinn tölur er.
Svo array plús 1, þú ert að segja að þú ert nú
fara til að vilja tala um fyrsta vísitalan í array.
>> Pulak Goyal: Hægri og svo Ástæðan sem virkar er array,
Hér getum við hugsað sem int stjörnu.
Og svo þegar við músina tölur á það, man formúlu þar
við tökum the-- ég giska hvað núverandi netfang er,
og svo þegar við bætum 1 við það, reyndar við
margfalda 1 með þvf að stærð hlutur sem við erum að notfæra.
Þannig að í þessu tilfelli, the stærð af int.
Og þá erum við að færa það senda með það mikið.
>> Ræðumaður 1: Svo þykjast þú þarft b array stjörnu.
Pulak Goyal: OK, já.
Ræðumaður 1: Með hendinni.
Fara hér.
Pulak Goyal: Eða ég get just-- já.
Svo here-- OK, svo array minnsta farin, er bara hérna.
Svo þegar við dereference fylking, við vorum bara að vísa til fyrsta blokk hér.
En nú þegar ég array auk 1, sem is-- þess ör er nú hérna.
Er að vit?
Rétt, því þetta blokk er af stærð int, sem er 4 bæti.
Og svo, hvað við erum að gera er að við erum flytja hann bendilinn með 4 bæti yfir.
Alltaf þegar við gerum tölur á það, mun það alltaf
færa það í þrepum, um 4 bæti.
Vegna þess að þetta er eins og int stjörnu.
Er að skynsamleg?
OK.
>> Áhorfendur: Svo það sem í fylkinu voru 5 bytes, viljum við færa það 5 bytes--
>> Pulak Goyal: Einmitt, þannig að ef við hefðum a bleikju stjörnu, viljum við færa hana um 1 bæti aðeins.
Svo er að ræða bleikju stjörnum, það myndi bara vera að færa það yfir í 1.
Áhorfendur: Til að fá sem Næsta sem þú þarft stjörnu.
Pulak Goyal: Já, já, gerir það vit?
Ræðumaður 1: Við getum spjallað um það meira seinna.
Pulak Goyal: Já, já, fyrir viss.
OK, flott.
Við skulum fara í næsta kafla.
Ræðumaður 1: Oh, OK flott.
Já, það er ég.
Allt í lagi, ógnvekjandi.
OK, flott, svo nú erum við á smá Almennar upplýsingar um minni.
Einnig þakka ég fyrir þá staðreynd að þeir voru að fara ansi hratt.
Það er a einhver fjöldi af efni til að fá gegnum í klukkutíma og hálfan.
En ef það eru einhverjar efni sem þú langar að fara meira í dýpt í,
við erum að fara að hafa Viðtalstími í þessari viku
þar sem þú getur spjallað við okkur einn á einn.
Eða þú gætir bara komið upp á sem enda og við munum spjalla um hlutina.
Og eins og alltaf, finnst að spyrja spurninga.
Awesome.
Svo er hér mynd af okkur af minni sem við höfum séð í fyrirlestri milljarð sinnum.
Og við vitum að þetta stafla vex upp frá botni
og hrúga vex niður.
Og hvað er munurinn á milli hluti að við höldum á hrúga og hlutum
að við höldum á mánudaginn?
Einhver kasta eitthvað þarna úti.
Já.
>> Áhorfendur: Er það stafla fyrir hluti sem eru bara
impermanent breytur sem við erum bara lýsa með tilteknum aðgerðum?
Ræðumaður 1: Fallegt, já.
Svo hvenær sem, við skulum segja að við erum í aðgerð,
og við verðum bara nokkrar staðbundnar breytur.
Þeir eru að fara að enda upp á mánudaginn.
Ef í staðinn, við köllum malloc og í raun tekið frá minni,
sem alltaf kemur frá hrúga.
Svo, já Cool?
>> Og svo muna að allir minni að þú úthluta nota malloc,
það er að fara að enda upp á vegg.
Og ef þú gleymir að frjáls það, the tölva '
ekki að fara að vita að þú ert búinn með það.
Svo það er bara að fara að hanga þarna úti í minni.
Og þú ert í raun leka að minni.
Þú ert að missa það.
Þar sem þú aldrei sagt tölvuna, hey ég er búin að nota það, ekki hika við að nota,
setja aðra hluti þar.
Cool.
Einhverjar spurningar þar?
Já.
>> Áhorfendur: Svo hvers konar af minni er stafla?
Non dynamic fæða, falið?
Hvað myndir þú kalla það?
>> Ræðumaður 1: Jú, svo þú gætir hugsa um það sem staðbundnar breytur.
Raunveruleg símtöl til aðgerða eru að fara að stafla upp.
Eitthvað annað?
Já?
Áhorfendur: Hvernig getur þú frjáls minni þú bætt the--
Ræðumaður 1: Jú, þannig að þegar þú skiptir minni á hrúga, kalla þú malloc.
Og svo þá sem gefur þér aftur a bendillinn að einhverju heimilisfangi í minni.
Svo segir þú heitir sá músina, ekki satt?
Þá, þú segir bara frjáls músina.
Og sem frjáls minni.
Cool.
Aðrar spurningar?
Já.
>> Áhorfendur: Hvað virk úthlutað meina?
>> Ræðumaður 1: Breytilega úthlutað þýðir, í tengslum við áætlun þína.
Svo þegar þú hringir malloc í um miðja program,
í upphafi áætlunarinnar, það er ekkert minni úthlutað.
Og eins og the tölva skref í gegnum það númer,
það er að fara að úthluta minni.
Svo er það sem er átt við með breytilega.
Góð spurning.
Já?
Áhorfendur: Þegar þú skilgreinir array með hornklofum,
gerir það enn [inaudible]?
Ræðumaður 1: Það er góð spurning.
Ég held að þegar þú skiptir fylki, það setur í raun það á mánudaginn.
Ég er ekki jákvæð um að svo ekki vitna í mig.
>> Ræðumaður 2: Ég held it-- já það setur það á mánudaginn.
>> Ræðumaður 1: Setur það á mánudaginn.
OK, flott, staðfest.
Aðrar spurningar?
Já?
>> Áhorfendur: Þegar þú fela malloc, er ekki tölva á sjálfvirkan hátt
úthluta minni fyrir breytur þínar?
Ræðumaður 1: Já, fyrir staðbundnar breytur þínar,
það setur sjálfkrafa minni á mánudaginn.
Áhorfendur: Svo er það benda á að nota malloc?
Ræðumaður 1: Hvað er benda á að nota malloc?
Þannig að við sáum fullt af dæmum, eins og, til dæmis, með því að nota skipti,
þar sem við viljum umfang breytan að vera eitthvað
út bara virka símtalinu hennar.
Og við viljum eitthvað sem við getum framhjá um
og að við getum nálgast frá mismunandi stöðum.
Það er þar sem við myndum vilja að setja minni á hrúga.
Svo að allir þessir mismunandi aðgerðir geta nálgast það.
>> Áhorfendur: Geturðu útskýrt bara það?
>> Ræðumaður 1: Svo is-- einn valkostur svo Spurningin var, getum við allocate-- bara
Því miður getum við lýsa yfir global breyta, í raun.
Það er einn kostur.
En með fullt af þeim, þá tilhneigingu til að fá raunverulega sóðalegur.
Og við teljum almennt þess sem slæmt hönnun.
Já.
Cool, einhverjar aðrar spurningar?
Awesome.
OK, færa á.
Svo þetta er í raun hvernig við úthluta minni.
Við töluðum um þetta smá.
Við notum þessa aðgerð sem kallast malloc.
Og þú segir það hversu margir bæti minni, svo hversu margir bæti á hrúga,
þú vilt.
Og það er að fara að skila heimilisfang, svo bendi, a stykki af minni
að það er úthlutað fyrir þig.
Svo tegund er að fara að vera ógilt stjarna.
Það er að fara til vera a bendi hvað sem þú ákveður að setja í það.
Hvenær þú hringir malloc, sagði við nú þegar
þú þarft að losa hana svo við hafa ekki minni lekur.
>> Hvað er annar hlutur að þú algerlega
þarft að gera á hverjum einasta skipti sem þú hringja malloc?
OK, þú þarft að losa það.
Hvað er annar hlutur?
Athugaðu for null, falleg.
Svo, já, það er rétt þar upp á borðinu.
Ef þú vilt reyna að úthluta minni og þú hefur ekkert minni eftir,
tölvan er að fara að segja, Ég hef ekkert að gefa þér.
Og það gefur þér aftur null.
Spurningar um það?
Já.
>> Áhorfendur: Hvers vegna vildi þú vilt alltaf að lýsa bendi með ákveðna tegund
þegar ógilt stjörnu ræður allt músina tegundir allavegna?
Ræðumaður 1: Góð spurning.
Hvers vegna ættum við að segja int stjörnuna öfugt við ógilda stjörnuna
þegar ógilt stjörnu ræður öllu?
Þannig að við viljum ekki að alltaf sérstaklega kastað ábendingum.
Það er bara slæmt æfa.
En við munum tala um int stjörnur bara sem skilning á,
þetta er bendi heiltala.
>> Áhorfendur: OK.
>> Ræðumaður 1: Já, gerir og það þú þarft að vinna gildin í það
sem heiltölur.
>> Áhorfendur: Oh, OK.
Og tóm stjörnu myndi ekki láta þig gera það?
>> Ræðumaður 1: Það veltur á samhengi Já, svo ekki hafa áhyggjur
ekki hafa áhyggjur of mikið um gerð þar.
Bara veit að almennt, malloc skilar bendi á eitthvað.
Góð spurning.
>> Áhorfendur: Hví margfalda það sinnum 10? [Inaudible].
>> Ræðumaður 1: Jú, þannig að ég var bara gera handahófi dæmi hér þar
Mig langaði til að úthluta nóg Herbergi til að geyma 10 heiltölur.
Bara af handahófi val.
Já.
Já, hvað er uppi?
>> Áhorfendur: Hvað finnst þér meina með því að haka for null?
Ert þú vilt að athuga bendillinn for null eða malloc?
Ræðumaður 1: Já, einmitt.
Svo spurningin var, hvað er átt við með því að stöðva með null?
Við viljum to-- hvenær við köllum malloc og við erum að skila bendi,
við viljum að segja, er bendillinn jafnt null?
Svo bókstaflega PTR.
Er PTR jafnt null.
Já.
Áhorfendur: Svo var ég góður að velta fyrir mér, ef þú
frumstilla músina í malloc, er það benda til byrjun malloc?
Vegna þess að ef það er array--
Ræðumaður 1: Það er frábær spurning.
Já, ef þú kallar malloc er bendillinn að it-- skulum segja,
svo hér við úthluta 10 bæti af minni.
Svo, ég er hryggur, nóg Herbergi fyrir 10 heiltölur
við erum að fara að fá veffang sem fyrst stykki af minni.
Það er góð spurning.
Já.
>> Áhorfendur: með því að úthluta 10 útbreidd heiltölur,
væri hægt að nota í raun það bendillinn eins like-- nánast
eins fjölda heiltalna?
Ræðumaður 1: Já, svo getur þú nota það sem fjölda heiltalna?
Já, einmitt, þetta er það sem Pulak bara sýndi þú on-- par renna síðan,
þar sem við segjum, OK, þetta er í raun bara svona of-- við
er að hugsa um það sem array af 10 heiltölur.
Það gerist bara að vera á hrúga.
Áhorfendur: En þú getur ekki aðgang það með veldi krappi tákn?
Ræðumaður 1: Þú í raun gæti nálgast það með veldi krappi merki, já.
Þú getur meðhöndla þeim sömu.
Já.
>> Áhorfendur: Hvers vegna vildi Pointer alltaf vera null?
>> Ræðumaður 1: Hvers vegna vildi Pointer alltaf vera null?
Ef þú ætlar að nota upp alla minni á hrúga þinn.
Ef forrit er að borða upp, borða upp, borða upp minni,
og það er ekkert eftir, þá malloc er að fara að say-- ef þú segir,
Ég vil 100 fleiri bytes, það er að fara að segja, að ég hef ekki 100 bæti.
Hér er null.
Það þýðir, ekki ég.
Já.
>> Áhorfendur: Í því tilviki, null er ekkert, ekki satt?
>> Ræðumaður 1: Já, af því að ræða, null er ekkert.
Þú hefur enga tölu.
Það er ekkert minni.
Allt í lagi, að flytja á.
OK, við skulum tala mjög hratt um yfirflæði.
Hvenær gæti við lendum biðminni flæða?
Segjum að við höfum a-- vér úthluta klumpur af minni,
og við erum að fara að skrifa band í.
Og við erum að fara að segja, OK, ég er að fara að úthluta
nóg pláss fyrir sex stafir.
Og ég ætla að biðja notandi fyrir sumir inntak.
Og notandinn inntak, td halló.
Og það passar fullkomlega fínt vegna þess að við höfum
Herbergi fyrir alla stafina halló, og null afsluttet staf.
Nóg pláss, ekkert vandamál.
>> En hvað ef við gefum tækifæri fyrir illur notandi til að nota kerfið okkar,
og þeir slá í ekki sex stafi, eða ekki fimm stafir, en milljón.
Þeir halda að skrifa, og vélritun, og vélritun, hvað er að fara að gerast?
Jæja við gefum aðeins tölva enough-- eða hryggur,
við gáfum aðeins þetta band nóg pláss fyrir 5 stafi.
Svo erum við að fara að fá eitthvað eins og þetta, þar sem illa sá sem er
slá inn í inntak getur skrifa the stærð af the buffer,
og getur farið í raun framhjá upphæð að það er upphaflega úthlutað.
Og þá hvað þú getur gert, sem raunverulega illt sem þú getur gert,
er skrifa aftur heimilisfang.
Sem í grundvallaratriðum þýðir þú getur konar tekið
stjórn á hegðun forritsins.
Svo á mjög háu stigi biðminni flæða er þegar
þú úthluta talsverða minni.
Og þá you-- þetta vegna þess að þú ert taka notandi inntak eða eitthvað
eins that-- þú ferð yfir mörk af því sem þú hefur upphaflega úthlutað
og byrja að Messías upp program.
Já?
>> Áhorfendur: Hvers vegna vildi það ekki bara skila skiptingu kenna?
>> Ræðumaður 1: Hvers vegna vildi ekki að skila skiptingu kenna?
Það gæti.
Stundum þýðanda eða á meðan einn af afturkreistingur þinn
er í raun að fara að athuga þetta.
Ef ákveðnar hlutir gerast, og þetta er góður af neðri hæð,
þá þarftu að vita.
En ef þú hannar ekki Þessi kerfi almennilega,
þá hefur þú tækifæri á ekki smitandi það og bara
leyfa tölvuna take-- á illt manneskja til að stjórna tölvunni.
Já.
>> Áhorfendur: [inaudible]?
Ræðumaður 1: Jú.
Oh, þegar ég segi biðminni, ég meina bara magn af minni sem þú hefur úthlutað.
Svo hér sagði ég, ó, við höfum úthlutað sex char-- nóg pláss fyrir sex stafir.
Og ég kalla bara að dúa minn þar sem ég gæti skrifað upplýsingar.
Já.
Aðrar spurningar um þetta?
Já.
>> Áhorfendur: Hvernig stöðva það?
Hvernig heldur þú að stöðva það?
Ræðumaður 1: Awesome spurning.
Hvernig heldur þú að stöðva það?
Hvernig heldur þú að koma í veg fyrir biðminni flæða?
Og ein leið til að gera það er eitthvað eins og GetString, þar sem við auka stöðugt
magn af minni sem við úthluta ef notandi slær inn mikið af texta.
Annar hlutur er, ef þér aðeins vilt sex stafi, gera a fljótur stöðva.
Segja aðeins inntak sex stafi.
Já.
Svo skulum segja að þú værir vinna on-- við erum að fara
að fara á heimasíðuna efni svolítið síðar í course-- en við skulum
segja að þú ert að vinna á því formi, að þú myndir bara takmarkað hversu mikið væri afhent í.
Já.
>> Áhorfendur: GetString togar minnið stafla, ekki satt?
Bara til að skýra?
Ræðumaður 1: Eitt sinn?
Áhorfendur: Er GetString taka minni úr stafla?
Ræðumaður 1: Ég trúi Getm-- Fá INT tekur minni frá hrúga
vegna þess að það kallar Alloc.
Áhorfendur: Oh.
OK.
Ræðumaður 1: Já, malloc og realloc.
Aðrar spurningar?
Já.
>> Áhorfendur: Svo með því að skilgreina the stærð af the höggdeyfir,
þú komið í veg einhver frá vera fær um að sprauta kóða
sem geta renna framhjá [inaudible].
>> Ræðumaður 1: Svo með því að skilgreina the stærð af the buffer,
þú hefur sagt, OK hér er hvernig mikið minni við getum notað.
Ef þú leyfa notanda að skrifa yfir það, þá þú ert að fara að keyra inn í vandamál.
Meikar sens.
Awesome.
Við skulum fara eftir.
Allt í lagi.
Talandi um villur, eru hér nokkrar algengar villuskilaboð
sem gæti hafa sýnt upp á meðan þú varst erfðaskrá, að vinna á vandamál setur þínum.
Gott tækifæri til þess að einn af þetta sýnir sig á spurningakeppni
ef undanförnum árum eru engar vísbendingar.
Svo eru svör konar upp hér á borðinu.
En ekki hika við að hrópa út meira.
>> Hvers vegna gæti a skiptingu kenna gerast?
Hvers vegna gætir þú fengið skiptingu kenna þegar þú ert að keyra forritið þitt?
>> Áhorfendur: [inaudible].
>> Ræðumaður 1: Good.
Já, ef við reynum að nálgast minni sem er ekki gefið okkur.
Ef við dereference núll músina.
Til dæmis, ef við köllum malloc, og gleyma að athuga hvort það er null,
og við reynum bara að nota það, tölvan er að fara að gefa okkur skiptingu kenna.
Good.
Hvað um óbeina yfirlýsing um virka?
Hvað þýðir það?
Áhorfendur: Þú ert að reyna að nota virka sem þú hefur ekki skilgreint.
Ræðumaður 1: Good.
Þú ert að reyna að nota virka sem þú hefur ekki skilgreint.
Svo sem gæti verið eitt af tvennu.
Kannski var það eins og td Camille sýndi þér áðan.
Og þú ert með helstu hlutverk sem kallar eitthvað sem heitir teningur.
Og við skulum segja að þú hafir gleymt að skrifa þetta frumgerð.
Þú hefur gleymt að segja, hey tölva, Ég hef þetta virka kallast teningur.
Þú munt sjá það seinna.
Segjum að þú hafir gleymt að skrifa frumgerð, þú might fá þessa villu.
Annar hlutur er, segjum þú reynt að nota printf,
og gleymdi að fela staðall bókasafn,
þá er að fara að segja óbeina yfirlýsing um virka.
Og síðast en ekki síst, óskilgreinda auðkenni.
Já.
>> Áhorfendur: Þú hefur got a vandamál svigrúm.
Eins og kannski þú ert að reyna að kalla á staðnum breytu sem er
í öðru konar svæði.
Ræðumaður 1: Great, þannig að ef þú ert með breyta sem er ekki í umfangi,
og þú ert að reyna að nota það, þú ert að fara að fá í vandræðum.
Og bara almennt, við skulum segja þú reynir að setja x, með sífellt segja int
x er jafnt 5, þá þú ert að fara að keyra inn í vandræði.
Afsakið mig, spurningar um þetta?
Awesome, chugging rétt eftir.
>> OK, endurkvæmni, hvers vegna might-- skulum see-- Ég missti minn sch-- ó hér við fara,
bara vera viss um að við erum gróflega á áætlun.
Allt í lagi, flott.
OK, endurkvæmni, almenn hugmynd af endurkvæmni, endurkvæma virka
er fall sem kallar sig.
OK, svo það er það sem ég meina með a program hugtak
þar fall kallar sig.
Hvað væri some-- hvað er Góð ástæða til að nota endurkvæmni?
Hvenær gæti verið gagnlegt?
Eða hvaða forrit sem raunverulega lánar sig til endurkvæmni?
>> Áhorfendur: Binary leit.
>> Ræðumaður 1: Binary leit lánar sig til endurkvæmni,
vegna þess að þú hefur þetta vandamál sem þú hægt að brjóta niður í smærri bita,
og stöðugt framkvæma sama reiknirit á það.
Þetta leiðir til, í mörgum tilvikum, meira glæsilegur kóða sem er nákvæmari.
Við erum bara dæmi af tvöfaldur leit.
Annað dæmi er Mergesort.
Stundum, þegar þú hugsar um reiknirit, eins Hrópmerkt,
mér finnst bara endurkvæma, ekki satt?
Þar sem við vitum að þáttatilraun af 5 er Factorial 4 sinnum 5.
Og svo þegar þú setur upp vandamál þannig, finnst það bara endurkvæma.
Svo það væri frábær leið til að skrifa það.
Spurningar?
Já.
>> Áhorfendur: Hvað er stöð málið?
>> Ræðumaður 1: Oh hvað er stöð málið?
Ég sagði, ekki gleyma að fela grunn mál.
Segjum að við vorum að skrifa a þáttatilraun virka,
og við vorum að gera aðfeldi 5.
Og við vitum aðfeldi 5 er 5 sinnum á þáttatilraun af 4,
bla, bla, bla, bla.
Hvernig vitum við hvenær á að hætta?
Hvernig vitum við að við í raun hafa a tala?
Vegna þess að ef við haldið starf þáttatilraun, þá við myndum aldrei fá svar, ekki satt?
Svo þegar við vitum hvernig á að hætta í dæminu Hrópmerkt.
Einhver, já.
>> Áhorfendur: Þegar 1 þáttatilraun er 1.
Ræðumaður 1: Good.
Þannig að við vitum.
Við getum tekið sem sjálfsögðum hlut að 1 Hrópmerkt er jafnt og 1.
Þannig að ef við fá til the benda hvar við köllum þáttatilraun á 1,
bara fara á undan og skila 1.
Og það er stöð mál þitt.
Þar sem við vitum þegar við högg það og við alltaf vilja högg að, munum við never--
við munum ekki bara halda áfram að eilífu.
Aðrar spurningar um endurkvæmni?
Já.
>> Áhorfendur: Svo þegar þú kemur aftur 1, það sjálfkrafa bara
mun stoppa áætlun, ekki satt?
>> Ræðumaður 1: Já svo þegar þér kalla aftur 1, if-- skulum segja,
skulum segja þáttatilraun af 2 símtöl þáttatilraun 1, þáttatilraun af 1
verður bara skila aftur 1.
Og nú þáttatilraun af 2 mun segja OK, 2 sinnum 1 er 2 og aftur það svar.
Já.
>> Áhorfendur: Eigum við að hafa áhyggjur um umfang í endurkvæmni
þegar þú ferð inn í reiknirit?
>> Ræðumaður 1: Ah, já.
Já, þú þarft að hafa áhyggjur af umfang í tengslum við endurkvæmni.
Svo að aðeins breytur skilgreindar í að hlaupa af virka
eru að fara til að vera gagnlegt.
Já góð spurning.
Allt í lagi, við skulum halda áfram með.
Þar sem við höfum mikið af efni til að komast í gegnum.
En eins og ég sagði, ekki hika við að ná upp vinnutíma, eða okkur eftir því.
>> Þetta er bara mjög fljótur renna.
Við lærðum mikið um leitar og tegund.
Vinsamlegast, vinsamlegast, Þessir hlutar eru á netinu,
Ég trúi á cs50.net/quizzes~~pobj.
Svo fara að taka þetta graf og setja það á endurskoðun blaði þínu,
því að það mun vera spurning um þetta.
Vinsamlegast ekki fá það rangt.
Bara mjög fljótt, hvað þetta graf þýðir,
er það talar um stór o, sem við vitum að vera efri mörk gegn reiknirit
keyra tíma.
Og við höfum Omega, sem er að fara að vera lægri mörk
af reiknirit afturkreistingur.
OK?
>> Áhorfendur: [inaudible].
>> Ræðumaður 1: Já, hvað er the síðastur hlutur?
Hvað er þeta?
Það er ef we-- við erum bara að fara að hugsa um í þessum flokki er að ræða
þar okkar efri og neðri mörk okkar eru þau sömu.
Já, það er í eina skiptið það er fara að koma upp í þessum flokki.
OK, ég ætla að halda áfram.
Ef þú hefur ekki tekið myndina, Ég lofa þetta verður á netinu.
>> OK, ógnvekjandi, structs.
Hvers vegna getum við viljum structs?
Hvað er gagnlegt ástæða við gætum vilja structs.
Einhver hrópa eitthvað út.
Jæja við skulum líta á dæmi á borðinu.
Við skulum segja að við erum að fást með öllum þessum nemendum.
Ef við erum að gera áætlun um CS50 eru eins 800 manns.
Við þurfum að write-- við erum að fara að þurfa að takast mikið af upplýsingum
um nemenda.
Það væri gott ef við gátum konar hóp
this-- allar þær upplýsingar sem hefur að gera með sérstakri nemanda
í eina tegund gagna.
En við vitum að það er engin gögn tegund heitir, Student, ekki satt?
Við höfum heiltölu, höfum við fljóta, við höfum band, eða bleikju stjörnu,
en við höfum ekki, nemandi.
>> Þannig að við getum gert er í raun eins konar skilgreina eigin uppbyggingu okkar, kalla það nemandi,
og við getum tengja sumir mismunandi sviðum með því strúktúr.
Þannig að í þessu tilfelli, við skulum segja að við höfum nemanda.
Og það sem okkur er annt um eru nemandi ID númer
og nafn nemandans.
Og nú erum við að tengja þetta auðkenni og þetta nafn með tilteknum nemanda.
Svo skulum sjá nokkur dæmi.
>> OK, svo hér er ég að segja, OK, við skulum segja að við viljum gera nemanda.
Ég kalla hann nemandi 1.
Og kennitölu hans, í þetta mál, getum við aðgang
bara með því að gera nafn nemandans punktur útaf við viljum fá aðgang.
Þannig að þetta er að fara að vera bara námsmaður 1 punktur ID, og ​​við setjum það jöfn 1.
Vegna muna, sagði við að ID er að fara að vera heiltala.
Og mjög álíka, getum við sagt, þetta Nafnið nemenda er að fara að vera Davin,
til dæmis.
Svo við getum bara nálgast sviði af strúktúr nota þessa punktur.
Spurningar um það?
Já.
>> Áhorfendur: Er einhver leið til að vernda breytur?
Er einhver leið til að vernda breytur frá því að vera utan nálgast?
>> Ræðumaður 1: Er samt að vernda breytur
frá því að vera utan nálgast?
Ekki undir gildissvið CS50.
Aðrar spurningar?
Já.
>> Áhorfendur: Hvað er typedef strúktúr?
Hvað þýðir hver þáttur meina?
Ræðumaður 1: Ah, hvað er typedef strúktúr?
Hvað gerir hvern hluta meina þetta strákur?
>> Áhorfendur: Já.
>> Ræðumaður 1: Allt í lagi, flott.
Þannig að þetta segir, hey tölva, ég vilja til að búa til nýtt skipulag.
Og ég ætla að skilgreina skilgreiningu fyrir það, þannig að ég gæti notað það
eins og ef það voru gerð um áætlun mína.
OK, svo ég vil að skilgreina uppbyggingu.
Og ég er nú að fara að vera fær um að nota það sem tegund.
Og nafn þess er nemandi.
Og hér eru reitir þess.
>> Áhorfendur: Svo er það typedef strúktúr [inaudible]?
Ræðumaður 1: Ef þú vilt vera fær um að nota þessa strúktúr um program,
og í flestum tilvikum í CS50 vér gera, þurfum við að segja tegund def.
Og að leyfa það að nota það sama leiðin sem við notum eins int eða fljóta.
The tölva vilja alltaf vita hvað það er.
Já.
>> Áhorfendur: Getum við skrifað þetta í haus skrá?
>> Ræðumaður 1: Oh, því miður.
Eigum við að skrifa þetta í haus skrá?
Þú gætir skrifað þetta á toppur af þinn program, efst á c program.
Já, það væri mest sanngjarnt staður fyrir það.
Þangað aftur.
Áhorfendur: Sama spurning, svo áður en main?
Ræðumaður 1: Hægri, þú þarft þetta að vera einhvers staðar að allir geti nálgast það.
Svo áður en helsta í þínu tilviki, já.
Áhorfendur: Er munur á milli setja nemandann ofan og á botni?
Ræðumaður 1: Ah, er það munurinn að setja nemanda
efst eða á botni?
Let-- spara þessi spurning, og þegar við komum til tengd listum,
við munum sjá að, OK?
Svo halda að það eina sekúndu.
Það síðasta sem ég vil nefna hér, er í stað þess að hafa skipulag,
við höfum bendi uppbyggingu, við getum breytt tákn okkar
að vera svolítið betur.
>> Við getum sagt, við skulum segja að við höfum a bendi á nemanda frekar en bara
nemandi.
Ef við viljum aðgang að sviði, í stað þess að gera, vel farið dereference músina,
og þá opna reit nafn.
Þetta merki lítur svolítið sóðalegur með stjörnunni í þessum punkti.
Algerlega rétt, en eins konar af hreinni leið til að gera það,
er bara að segja nafnið bendi ör.
Og að í raun sameinar dereferencing og aðgangur í einu fallegu tákn.
Spurningar um það?
>> Áhorfendur: Bara að segja að eitt sinn.
>> Ræðumaður 1: Segja að eitt sinn.
>> Áhorfendur: Einmitt það sem þú sagðir.
Ræðumaður 1: Jú, einmitt það sem ég sagði bara.
Ef við höfum bendi til nemanda frekar en nemandann sjálfan,
við can-- ein leið sem við getum nálgast reitur er að dereference það, og þá
aðgang nafn.
Annar, ágætur vegur við getur gert það, sem er bara
smá setningafræðilegar sykri, er bara að gera músina ör nafn.
Og það er að fara að sameina dereferencing og aðgangur.
Já, laglegur kaldur.
Allt í lagi.
>> Svo skulum við tala um aðra spurningu.
Við skulum hoppa til hnúður, sem við erum að fara að nota
í tengslum lista á aðeins sekúndu.
Svo hér, þú munt taka eftir því að það er orðið hnút bæði á botn,
Og ofan.
Áður, þegar við vorum að skilgreina nemandi, við höfðum bara nemanda á botn.
Við vildum ekki hafa nemanda á toppinn.
Hver veit hvers vegna það gæti verið?
Hver munurinn er?
Já.
Áhorfendur: Svo þú notar hnút er skilgreining á hnút,
svo það er endurkvæma hlutur?
Ræðumaður 1: Good.
Já, við þurfum hnúta okkar að hafa bendi annarra hnúta.
Svo þar sem við notum þessa tegund áður en það er í raun skilgreint,
við þurfum að setja það efst bara svo það veit hvað það er.
Áhorfendur: Svo við enn þarf það neðst?
Ræðumaður 1: Já.
Áhorfendur: Svo alltaf neðst.
Ræðumaður 1: Alltaf neðst.
Svo öll þín mun hafa það í botn.
Aðrar spurningar?
Allt í lagi, svo lætur í raun tala um tengd listum mjög fljótt.
Svo tengd listum are-- við notum þær í stað þess að fylki í sumum tilvikum,
vegna þess að við vitum að fylki eru fastur lengd, en tengd listum
við getum vaxa og skreppa eins og við viljum.
Svo er þetta dæmi um hvað tengdur listi gæti litið út.
Það sem við þurfum að sjá er yfirmaður listanum.
Svo þar sem listinn byrjar.
Og þá hnútur hann hver síðari hnút, er
ábyrgur á því þar sem næsta hnúturinn er.
Þannig að í þessu tilfelli, hnúturinn sem geymir 1 er ábyrgur fyrir að vita hvar 3 er.
Sá sem geymir 3 er ábyrgur á því að þar 9 er.
Og 9 hefur enginn annar að benda á.
Það er enda á listanum, svo það segir bara null.
OK?
>> Áhorfendur: Hvað er að benda á þetta?
>> Ræðumaður 1: Hver er tilgangurinn með þessu?
>> Áhorfendur: Já.
Ræðumaður 1: Vegna þess, við skulum segja að við höfum nokkur gögn.
Og við vitum ekki nákvæmlega hvernig mikið af gögnum sem við viljum til batnaðar.
Svo með fjölda, við skulum segja hvar við langar að telja fólki í fyrstu röðinni.
Líklega er það ekki að fara að breytast.
Við getum bara sagt, OK, ég vilja fjölbreytta stærð sex.
En ef við viljum eitthvað það er að fara að breytast.
>> Til dæmis, við skulum segja að ég var að reyna til að halda utan um nemendur
eins og þeir koma inn í herbergið fyrir endurskoðun fundur.
Ég hef ekki hugmynd um hversu margir af þú fólk er að fara að mæta.
Svo ég gæti langað gögn uppbygging að ég get stækka og minnka.
Því kannski einhver mun fara, kannski mun einhver koma.
Og svo hvenær við Hægt er að bæta við eða fjarlægja hnúður.
Cool, frábær spurning.
Já.
>> Áhorfendur: Ef þú getur notað eitthvað eins GetString
sem heldur að láta þig fá fleiri gögn sem þú þarft það, hvers vegna þú þarft þetta líka?
>> Ræðumaður 1: Hvers vegna vildi þú notar tengd lista þegar
þú getur notað eitthvað eins GetString?
Það er góð spurning.
Mundu að Get-- einn af downfalls af GetString
er að við vissum ekki mjög gott starf frjáls að minni,
og við kynntum fullt af minni lekur inn program?
Þú gætir tekið það með statically stór array og halda áfram að vaxa það.
En þú vilt að finna nýja staði í minni.
Það myndi bara vera a einhver fjöldi af kostnaður.
>> Einn af the ágætur hluti um tengd listar eins og til fylki, er fylki
eru allir á sama stað í minni.
Það þarf að vera samfelld klumpur af minni.
En tengd listum, 2. og 3. maí vera algerlega á mismunandi stöðum.
Eins og 2 er hérna, og 3 er hérna.
Og svo lengi sem þeir hafa bendi á annan, það er allt í lagi.
Við vitum að við getum fundið þá.
Spurning þarna?
>> Áhorfendur: GetString er fall í CS50 bókasafn, ekki satt?
Það er ekki til í alvöru forrit.
>> Ræðumaður 1: Rétt.
Right, það er annar hlutur.
GetString er ekki til utan tengslum við CS50.
Já.
>> Áhorfendur: Svo er staðreynd að tveir gætu verið mjög langt í sundur,
Er að hafa áhrif á skilvirkni aðgang þætti á listanum?
Ræðumaður 1: Það er frábær spurning.
Spurningin var, er það áhrif skilvirkni aðgang
þessir mismunandi þættir í listanum.
Reyndar já.
Þar sem við vitum if-- skulum segja að við viljum fá aðgang
seinni þáttur í fylki, við vitum við getum bara gert array krappi 1, rétt.
Það er alltaf að fara að vera á sama stað.
En ef við viljum fá til að 3, getum við ekki bara að segja, fara að fá að 3.
Við verðum að segja, OK, byrja á upphaf listanum,
og nú höfum við í raun að ganga í gegnum þar til við
finna fjölda sem við erum áhuga á.
>> Þannig að í þessu tilfelli erum við að segja, OK þetta er fyrsta númerið.
Svo í raun, það er vísitalan 0.
Nú verðum við að finna annað númer.
Það er vísitala 1.
Svo það er í raun að fara to-- bara aðgang, er að fara að taka N tíma.
Cool, stór gamall N. Já.
>> Áhorfendur: Hvað eru hvert listum?
Eru þeir hver fylki, eða hvað?
Ræðumaður 1: Það er frábær spurning.
Hvað eru hvor af mannvirki sem ég hef dregið?
Þeir eru hnútar.
Svo að hver af þessum litlu uppbygging í tvo hluta.
Það hefur heiltölu sem geymir.
Það er í raun gögn að það er að halda á.
Það er góður af gagnlegum hluta.
Og þetta er hvað gerir það tengda listanum,
það hefur bendi á næsta hnút.
Awesome spurning.
Allt í lagi, þannig að við skulum líta mjög fljótt að líta á nokkur dæmi um það
við gætum gert með tengd listum.
>> Svo einn mjög fljótur dæmi er, býst við viljum gera a leita.
Hvers konar leit getur ekki við gerum á tengd listum?
>> Áhorfendur: Binary.
>> Ræðumaður 1: Binary.
Hvers vegna getum við ekki notað tvöfaldur leit?
>> Áhorfendur: [inaudible].
Ræðumaður 1: Hægri, því með tvöfaldur leita, við þurftum að treysta á þá staðreynd
að við gætum bara hoppa í fylkinu á hverjum stað.
Við gætum bara segja, fara að miðju frumefni.
Við hér, eins og ég sagði svolítið fyrr,
við getum ekki bara hoppa til miðju þáttur.
Til þess að finna eitthvað þáttur, reyndar við
að ganga í gegnum allan listann okkar.
>> Þannig að ef við vildum að gera a leita, sem besti sem við getum gert er bara línuleg leit.
Við byrjum á höfuðið, við check-- skulum segja að við erum
leita 9-- við byrjum á höfuðið.
Við segjum, er þetta 9?
Nei
Er þetta 9?
Nei
Er þetta 9?
Já, við fundum það.
OK, það er allt sem.
Hér er smá hluti af gervi-kóða.
Ég ætla að láta þetta fyrir þig krakkar að strokkur yfir á eigin spýtur,
bara vegna þess að við erum að keyra svolítið stutt á réttum tíma.
>> Lets tala um ísetningu.
Við sáum mjög flott demo af þetta í fyrirlestri þar sem við sagði,
OK, við höfum þessa tengdan lista hvar allir að benda hver á annan og
og einhver kemur upp á sviðinu.
Hvernig eigum við að setja það Maður í tengda listanum okkar?
Jæja, röng leið til að gera, sem er ég held að það sem við sáum fyrst,
er þegar maður í framan sjálfkrafa
benti á nýrri manneskju.
Og þá erum við konar yfirgefin Seinni helmingur listanum, ekki satt?
Þar sem við vitum ekki hvar það er í minni lengur.
Svo til að vera mjög varkár um í hvaða röð við setjum hlutina.
>> Svo hér, við skulum segja að við viljum setja 1 framan á listanum okkar.
Í fyrsta lagi höfum við 1 stig á the Annað element-- eða þáttur
sem inniheldur 1.
Svo, gera við það, bara svo að við erum ekki að fara að missa seinni hálfleik.
Og nú getum við fengið höfuð benda til 1.
Svo aftur, þetta er bara eins frábær mikil.
Þetta er hvernig við myndum setja hnút.
Við höfum mikið af gervi-kóða here-- hryggur,
Ég veit ekki af hverju ég er kalla það gervi-kóða.
Það er raunveruleg númer.
Þú getur fara stöðva það út síðar.
>> Allt í lagi, við skulum mjög quickly-- einhverjar fleiri spurningar
á tengd listum áður en ég færa inn nokkrar aðrar upplýsingar
mannvirki í okkar síðustu 10 mínútur.
>> Áhorfendur: Þurfum við að nú hvernig á að skrifa það á prófi?
>> Ræðumaður 1: Þurfum við að vita hvernig to--
>> Áhorfendur: Skrifaðu það á prófi.
>> Ræðumaður 1: Við þurfum to-- þú ættir að vera tilbúinn
að skrifa, setja, fjarlægja og leita tengd listum á prófinu.
Það er eitthvað sem við gæti ætlast til að þú gerir.
Fara bara yfir það.
Ef þú hefur einhverjar spurningar um númer, skjóta TF þitt tölvupóst,
koma til skrifstofutíma.
Það er samt hellingur af tíma að læra, ekki að hafa áhyggjur.
Allt í lagi, allir hinn spurningar um tengd listum?
Já.
>> Áhorfendur: Svo ef þú notar ekki bendillinn að fara á einn á hægri
áður en þú notar músina til einn á vinstri, það er
jafnvirði eyða allt, ekki satt?
Ræðumaður 1: Já.
Áhorfendur: [inaudible].
Ræðumaður 1: Hægri, þar sem við getum ekki fá það, það er í raun enn verra.
Því ekki aðeins eigum við ekki vita þar sem það er, þá getum við ekki lengur notað það,
en we've-- við erum ekki frjáls að minni lengur.
Svo það er bara hangið og ekki verið gagnlegt vegna þess að við getum ekki fundið það.
Já, flott spurning.
>> Allt í lagi, við skulum tala um stafla.
Við sáum stafla mjög fljótt.
Þeir eru fyrst í síðasta út gögn uppbygging.
Þannig að við hugsum um stafla í Annenberg af stæði þar sem við stafla hlutum ofan.
Og ef þú ert að fara að koma fá bakka, þú ert
alltaf að fara að taka einn á efst, sem er mest recently--
sem er hlutur sem við flest nýlega sett ofan á stafla.
Svo þú getur konar hugsa um svona sjón þegar þú ert að hugsa um stafla.
Og þá höfum við laust eitthvað burt the toppur af stafla.
>> Ef við are-- ó, og orðin sem við nota þegar við erum að tala um þessi gögn
mannvirki er yfirleitt, ef við setja eitthvað á mánudaginn,
við segjum að við erum að þrýsta það á mánudaginn.
Og ef við tökum eitthvað af stafla, við segjum að við erum pabbi af stafla.
Ef þú ert að fara að innleiða a stack-- sem ég örugglega
mæli með að þú reynir out-- þú ert fara til að vilja halda utan um,
skulum segja að þú ert að nota array.
Ég veit í fyrirlestri við ræddum um að nota bæði fylki
eða tengjast listum að innleiða stafla.
Ef þú ert að nota array, þú þarft að keep--
afsökun me-- við þurfum að halda utan af stærð og getu.
Svo hámarksfjölda að stafla okkar getur haldið.
Spurningar um stafla?
>> Áhorfendur: Hver er munurinn milli stærð og getu?
Ræðumaður 1: Mismunur stærð og getu, ógnvekjandi spurning.
Svo skulum segja að við erum því að nota array, og við
úthluta nóg pláss fyrir 10 heiltölur.
Og við byrjum að fylla það upp.
Og við að ýta hlutum á, og við skjóta það burt.
Við viljum halda utan um hámark tala við getum haldið, það er getu.
Og við viljum halda utan um núverandi fjölda við höfum, það er stærð.
Góð spurning.
Eitthvað annað á stafla?
Allt í lagi, við skulum tala um á óvart, biðraðir.
>> Ólíkt stafla, sem eru fyrst í síðustu út, þetta eru fyrst inn, fyrst út.
Svo er þetta like-- hugsa um línu.
Hugsaðu um að undirbúa á Apple Store til að fá hvað sem vöru.
Og fyrsta manneskjan í línu ætti vera fyrsta manneskjan sem hefur hjálpað.
Svo það fyrsta sem er ýtt er þetta það fyrsta sem er laust.
Cool?
Mjög similarly-- Ó, orð sem við notum í stað þess að ýta og pop--
sem ég notaði bara, Ég er sorry-- er við að segja,
ef við erum að setja eitthvað inn biðröð, segja við enqueued það.
Ef við erum að taka eitthvað út af biðröð, segjum við að við dequeued.
It.
Ég má borin þeim rangt, en þú fá the hugmynd.
Og svo aftur, rétt eins og stafla, ef við erum að innleiða þetta sem array,
við þurfum að halda utan um stærð, getu, og höfuð.
Hvað geri ég meina með skalla?
Hvers vegna þurfum við að halda utan um höfuðið?
>> Áhorfendur: Vegna þess að það er þar sem upphaf listanum er.
Ræðumaður 1: Já, í rauninni höfuð er þar sem upphaf biðröð okkar er.
Þar sem við vitum, ólíkt stafla, which-- Ég ætla að reyna að takast á við þetta way--
við vitum að það er alltaf að fara að skreppa með þessum hætti og vaxa á þennan hátt.
Biðraðir, koma fólki inn á endanum og fara frá upphafi,
þannig að við verðum að halda utan hvar upphafið er.
Það er það sem ég meina með því að við þurfum að halda utan um hvar hausinn er.
Cool?
Allt í lagi.
Átta mínútur, par Meira efni, getum við gert það.
>> Allt í lagi, kjötkássa borð.
Við ræddum mjög stuttlega um kjötkássa matskeið.
Fyrir próf, þú þarft bara að skilja þá á háu stigi.
Grunnhugmyndin er að þú verður að þessum gögnum.
Og við viljum að nálgast það í tíma sem er hraðar en eitthvað eins tengdur
lista.
Vegna þess að við sagði, ef við værum leita í gegnum tengda listanum,
sem gæti tekið N tíma.
Jafnvel aðgang getur tekið N tími í tengda listanum.
Kjötkássa matskeið gefa okkur hvernig við getum hraðar nálgast hlutina, og fleira
fljótt að leita að hlutum, án þess að að hafa hömlur á fjölda
þar sem við höfum fast stærð.
>> Þannig að við hugsum um gögn uppbyggingu þar, þar sem við setja það í gögn uppbygging
er háð þessu töfrandi kjötkássa virka.
Þannig að í þessu tilfelli, töfrum kjötkássa Fallið er bara að taka orð,
haka hvað fyrsti stafurinn er, og þá bara að raða honum í stafrófsröð.
Svo við settum í raun þá í mismunandi fötunum.
Þegar við sjáum banani, segjum við, OK, við skulum setja í B fötu.
Þegar við sjáum Apple, við skulum setja það í fötu.
Ef við sáum Apricot, við skulum setja í fötu.
OK?
>> Svo býst ég var að leita for-- I veit ekki, hvað er annað ávexti?
Segjum að ég var að leita að appelsína.
Hvar ætti ég að leita?
Í O fötu.
Já, það er aðeins einn staður að appelsína gæti verið, OK?
Svo ég sagði áðan hvað gerist if-- vel og ég sagði áðan,
skulum segja að við setja apríkósu in-- en ég virkilega að takast á við þá staðreynd að, ó nei,
ef ég væri að setja Berry í, það er fara að stangast á við banana.
Þar sem við settum það ef það er þegar eitthvað í borðinu okkar?
Jæja, höfum við nokkrar valkosti.
>> Valkostur númer eitt er línuleg leit, sem í grundvallaratriðum þýðir,
skulum segja að ég vil reyna að setja Berry, og ég sé, ó nei,
bananar nú þegar, Ég segi bara í lagi, látið
mig líta að næstu staðnum.
Svo ég geng niður, segi ég, ó, það er ekkert í D fötu.
Ég get í raun ekki hugsa um hvaða ávöxtum að byrja með bréfi D,
þannig að ég ætla bara að fara að setja Berry þar.
Durian.
OK, svo þar er ekkert í það enn,
Ég gæti eins vel nota bara þessi blettur.
Hvað er ókostur að?
>> Áhorfendur: Það er út af röð.
>> Ræðumaður 1: Sorry?
Áhorfendur: Það er út af röð.
>> Ræðumaður 1: Það er out-- rétt, gætum við endað
með hluti sem eru ekki in-- geymdar í fötunum í leiðinni
sem við búast við þá til að vera.
Þannig að ef við vorum að leita fyrir berjum, áður en við sagði,
ó við getum litið á einni fötu.
Það gæti aðeins verið í einni fötu.
En nú, í raun, það gæti verið í öllum fötunum, ekki satt?
>> OK, hér er annar valkostur, Sérstakur chaining--
sem er sú hugmynd að við erum að fara að nota smá síðar í P sett 5.
Frekar en bara að hafa eitt bil í hverri fötu,
Hvers vegna eigum við ekki að hafa hvert fötu vera bendi tengda listanum?
Þar sem við segjum, OK, það er fötu fyrir allt sem byrjar með A.
Og það er bara að fara að vera tengd lista af ávöxtum sem byrja með A.
Svo ef við fáum nýja ávöxtu, segjum við get-- við lárperu, við höfum epli,
skulum segja að við fá Apricot, hvernig myndum við setja á listanum?
Jæja við myndum fara að fötu 0, og við myndum bara setja það í líkaði listanum okkar,
einfalt er það.
>> Nú er ég að halda áfram að segja fötu.
Við gætum framkvæma þetta í nokkra vegu.
Ein dæmigerð leið að þetta svona mynd gefur til kynna,
er kannski að hafa fjölbreytta ábendingum til tengd listum.
Það er ein leið sem við getum innleiða kjötkássa borð.
Áhorfendur: Vilt þú þarft annað Listinn vegna banani og Berry eru út
af röð?
Ræðumaður 1: Vilt þú need-- Ah, þú vildi
þarf annan lista vegna þess að banani og Berry eru í ólagi?
Í þessu tilviki, kjötkássa virka okkar, sem segir okkur hvar á að setja hlutina
er ekki sama um annað bréf.
Það er ekki sama um alphabetizing, það annt aðeins um fyrsta staf.
Spurning?
>> Áhorfendur: Hver er skilgreining á því virka, og hvað þýðir það líta út?
Ræðumaður 1: Ah, gott.
OK, þannig að við þurfum ekki að hafa áhyggjur of mikið fyrir þetta próf.
Svo ég hafði ekki sett í glærum.
Við erum að fara að kynna við það fyrir P sett 5.
En í grundvallaratriðum, það segir, gefið nýr þáttur, hvar ætti ég að setja það?
Eða við skulum segja að ég er að leita að þáttur, þar gæti það verið?
Já, frábær spurning.
>> OK, mjög fljótt, tré og reynir.
Svo er tré bara hvers konar skipulagðri gögn uppbygging.
Og við erum að fara að sjá mikið af myndum sem mun gera þetta frábær skýr.
Og Trie, sem við sáum í bekknum, er mjög sérstök tegund af tré
sem í raun virkar eins a multi-láréttur flötur kjötkássa borð.
Það er frábær kaldur.
Við erum að fara að sjá það í bara sek.
Allt í lagi, þannig að við skulum tala um tré fyrst.
Þannig að þetta er í raun dæmigerð dæmi um tré, þar sem við höfum einhverja stigveldi.
Þú sérð að einn er á the mjög toppur, ekki satt?
Og ég get sagt toppinn vegna þess að það er greinilega röðun vegna þess að við
hafa þessar örvar að fara niður.
Þannig að hlutur efst, Ég kalla það rót hnút.
Svo er eitt rót hnút.
Og það neðst, sem hafa ekkert að koma af þeim,
Ég segi þetta eru lauf hnútar.
Svo 8,9 5, 6, 7, OK.
Og yfirleitt hugtök við get sagt er, 1 er 3 er foreldri.
Svo er það sem kemur a stigi fyrir ofan það, og bendir á það.
Og 3 er 1 er barn.
Það er hlutur sem 1 stig til.
Spurning?
>> Áhorfendur: Getur þú farið aftur til fyrri renna, vinsamlegast?
>> Ræðumaður 1: Get ég farið til baka á fyrri glæru?
Viss.
Spurningar um þetta?
Eða þú vildir bara að líta á það?
Áhorfendur: ég bara ekki komast í gegnum það.
>> Ræðumaður 1: Allt í lagi, kaldur, já.
Þetta verður allt að vera á netinu svo ekki áhyggjur óður í getting hvert orð.
Og í þágu tími, ég ætla að fara.
Er það í lagi?
Awesome.
OK, flott.
Svo skulum við tala um a mjög sérstakar kind--
þannig að við höfum þetta almennt uppbyggingu tré,
sem er bara eitthvað sem gerir okkur að eins konar tign hlutum hierarchically.
>> Tvöfaldur tré eru hlutir þar sem sérhver hnútur hefur í mesta lagi tvö börn.
OK?
Og ég sagði, OK, svo virðist sem að passa við þessa lýsingu.
Ég sagði hnút, ekki tvíleitartré.
Hvað er tvöfaldur leita tré?
Það er flokkað.
Svo þú veist að í tvíleitartré,
allt á tree-- allt að hnúður vinstri er minni,
og allt til hnúður rétt er stærri.
Svo er þetta ekki tvöfaldur leita tré.
Þetta er bara tvöfaldur tré.
Þannig að við höfum stóra flokk tré, örlítið minni flokkur
tvöfaldur tré, leita eftir a-- tvíleitartré.
Cool?
Allt í lagi.
>> Og nú, mest gaman af allt, höfum við tilraunir okkar.
Þið sá þessa mynd í fyrirlestri?
Já, það ætti að líta frábær þekki.
Við skulum líta á hvernig við gætum raunverulega framkvæma þetta.
Eða í raun, við skulum sjá, er að jafnvel koma upp?
Nei.
Allt í lagi, eigum við ekki einu sinni að hafa áhyggjur af því lágt efni.
Við munum hafa nægan tíma til að takast á þá P setja 5.
En nú, bara mjög mikil, við veit að þetta er það sem það lítur út.
Við lýst því sem einskonar a multi-láréttur flötur kjötkássa borð
where-- hvað gerir þessa verslun?
Þessi geymir nöfn vísindamenn sem við getum raunverulega
leita eftir bara svona eftir á mismunandi töflur kjötkássa niður, allt í lagi?
>> Og tilgangur þess er, í orði, þeir veita föstu líta upp.
Þannig að ef ég vil að athuga það, til dæmis, sem er someone--
sem Mandel er í þessu Trie, ég gæti mjög fljótt
í linear-- Fyrirgefðu, í föstu tíma, reikna út
hvort sem það er í Trie.
En sam, er líta á hversu stór þessi er.
Við erum ekki einu sinni að geyma það mikið af gögnum, og það er mikið.
Svo er einn stór con sem það notar mikið minni.
Já.
>> Áhorfendur: Hvers vegna er það að veita föstu tíma, nákvæmlega?
>> Ræðumaður 1: Eitt sinn?
>> Áhorfendur: Hvað er innsæi fyrir því hvers vegna það veitir stöðuga tíma?
>> Ræðumaður 1: Excellent spurning.
Hvers vegna er það að veita stöðuga tíma?
Svo það sem við getum gert er, við skulum segja að við erum að leita að Mandel.
Við vitum að við viljum að byrja í fyrsta stigi í M.
Við vitum að við viljum að fylgja henni til E. Svo það er tekið eitt skref, tvö skref, ekki satt?
Við fylgjum henni til N. við fylgjum henni til D. Við fylgjum henni til E. Við fylgjum henni, L.
Og svo næsta sem við athuga says-- þetta Delta segir Já, það er
í töflunni okkar.
Það er orð.
Það er gild færsla í Trie okkar.
Svo þú ert að segja, OK, sem tók sjö skrefum.
En ef við bætt eins og Zillion meiri vísindamenn að þessum gögnum uppbyggingu,
við þyrftum ekki að athuga a zillion fleiri hlutir.
Við erum bara alltaf að fara að þurfa að taka sjö skref, lengd viðkomandi er
nafn.
>> Svo, eins og við að hugsa Runtime sem býst
við auka stærð okkar gögn uppbygging, hversu mikið lengur
er það að fara að taka?
Í þessu tilfelli, ef við bætum fullt fleiri vísindamenn, það skiptir ekki máli.
Það er samt að fara að taka sama magn af tíma.
Það er stöðug tími.
Já.
>> Áhorfendur: Hvernig veistu ekki að skanna yfir aðrar tölur?
Ræðumaður 1: Hvernig veit ég hversu to--
Áhorfendur: Eins og hvernig veistu að þú ferð beint frá M til E og ekki til M að A?
Ræðumaður 1: Oh, viss.
Þar sem ég vissi að ég var að leita að orðinu Mandel,
og ég veit bara að það er M-E. Svo that-- já, fara á undan.
Áhorfendur: Vilt þú ekki að líta á öðrum bréfum
í the hvíla af the [inaudible]?
>> Ræðumaður 1: Ah, ég myndi ekki hafa að líta á the-- lagi, frábært.
Þetta er frábær spurning.
Það fer eftir því hversu við framkvæma það.
Ef við framkvæma það sem bara eins og röð af fylki
þar sem við vitum að E er alltaf í stöðu 0,
Ég veit ekki, hvað Fjöldi vísitalan er.
Já, við getum bara gert stöðugt tími, ekki, ekki, ekki, ekki.
Cool.
Spurning þarna?
>> Áhorfendur: Er fasti tími sama og rauntíma?
Ræðumaður 1: Er fasti tími sama er rauntíma?
Ég er ekki alveg viss rauntíma er.
Áhorfendur: Eins sinn sem bókstaflega líður annað
með annað í stað þess að vera sjálfstæð breyta.
>> Ræðumaður 1: Ó, já, þú er að hugsa um það þannig.
Með öðrum orðum, það er ekki háð á stærð gögn uppbygging.
Það er leið til að hugsa um það.
Aðrar spurningar?
Kannski í fyrsta skipti í Saga, lauk við á réttum tíma.
Ef þú hefur einhverjar spurningar, ekki hika frjáls til að koma að spyrja okkur, fara í kafla,
tala við þinn TFS, skrifstofa tímar eru 08:00 og 08:30
til 11:00 á mánudag og þriðjudag, svo það er svolítið mismunandi tíma,
svo vertu viss um að þú huga að.
Já.
>> Áhorfendur: Þurfum að vita efni eins og stjórn lína rifrildi,
Dash LS, þjóta hvað?
>> Ræðumaður 1: Stjórn lína rök og Linux skipanir,
já, þú þarft að vita þá.
Very-- það er eins konar stigi efni sem við fjallað í kafla 0,
eins langt og Linux skipanir fara.
>> Áhorfendur: Eru tímar í Annenberg?
Ræðumaður 1: Viðtalstími, ég er ekki alveg viss hvar þeir eru.
En þú getur athugað það website, og það mun segja þér.