1 00:00:07,360 --> 00:00:09,360 [Powered by Google Translate] זאל ס רעדן וועגן ערייז. 2 00:00:09,360 --> 00:00:12,780 אַזוי וואָס וואָלט מיר אלץ ווילן צו נוצן ערייז? 3 00:00:12,780 --> 00:00:17,210 געזונט לאָזן ס זאָגן איר האָבן אַ פּראָגראַם וואָס דאַרף צו קראָם 5 תּלמיד ידס. 4 00:00:17,210 --> 00:00:21,270 עס זאל ויסקומען גלייַך צו האָבן 5 באַזונדער וועריאַבאַלז. 5 00:00:21,270 --> 00:00:24,240 פֿאַר סיבות מיר וועט זען אין אַ ביסל, מיר וועט אָנהייבן קאַונטינג פון 0. 6 00:00:24,240 --> 00:00:30,700 די וועריאַבאַלז מיר וועט האָבן וועט זייַן ינט יד0, ינט יד1, און אַזוי אויף. 7 00:00:30,700 --> 00:00:34,870 קיין לאָגיק מיר ווילן צו דורכפירן אויף אַ תּלמיד שייַן וועט דאַרפֿן צו זייַן קאַפּיד און פּייסטיד 8 00:00:34,870 --> 00:00:36,870 פֿאַר יעדער פון די תּלמיד ידס. 9 00:00:36,870 --> 00:00:39,710 אויב מיר ווילן צו קאָנטראָלירן וואָס סטודענטן פּאַסירן צו זייַן אין קס50, 10 00:00:39,710 --> 00:00:43,910 מיר וועט ערשטער דאַרפֿן צו טשעק אויב יד0 רעפּראַזענץ דער תּלמיד אין דעם קורס. 11 00:00:43,910 --> 00:00:48,070 דעריבער צו טאָן די זעלבע פֿאַר די ווייַטער תּלמיד, מיר וועט דאַרפֿן צו צייכענען און פּאַפּ די קאָד פֿאַר יד0 12 00:00:48,070 --> 00:00:54,430 און פאַרבייַטן אַלע פֿאַלן פון יד0 מיט יד1 און אַזוי אויף פֿאַר יד2, 3, און 4. 13 00:00:54,430 --> 00:00:57,560 >> ווי באַלד ווי איר הערן אַז מיר דאַרפֿן צו צייכענען און פּאַפּ, 14 00:00:57,560 --> 00:01:00,440 איר זאָל אָנהייבן טראכטן אַז עס איז אַ בעסער לייזונג. 15 00:01:00,440 --> 00:01:05,360 איצט וואָס אויב איר פאַרשטיין איר טאָן ניט דאַרפֿן 5 תּלמיד ידס אָבער אלא 7? 16 00:01:05,360 --> 00:01:09,570 איר דאַרפֿן צו גיין צוריק אין דיין מקור קאָד און לייגן אין אַ יד5, אַ יד6, 17 00:01:09,570 --> 00:01:14,260 און קאָפּי און פּאַפּ די לאָגיק פֿאַר קאָנטראָלירונג אויב די ידס געהערן צו די קלאַס פֿאַר די 2 נייַ ידס. 18 00:01:14,260 --> 00:01:19,600 עס איז גאָרנישט קאַנעקטינג אַלע די ידס צוזאַמען, און אַזוי עס איז קיין וועג פון אַסקינג 19 00:01:19,600 --> 00:01:22,040 די פּראָגראַם צו טאָן דעם פֿאַר ידס 0 דורך 6. 20 00:01:22,040 --> 00:01:26,120 געזונט איצט איר פאַרשטיין איר האָבן 100 תּלמיד ידס. 21 00:01:26,120 --> 00:01:30,770 עס ס סטאַרטינג צו ויסקומען ווייניקער ווי ידעאַל צו דאַרפֿן צו סעפּעראַטלי דערקלערן יעדער פון די ידס, 22 00:01:30,770 --> 00:01:33,760 און קאָפּי און פּאַפּ קיין לאָגיק פֿאַר יענע נייַ ידס. 23 00:01:33,760 --> 00:01:38,380 אבער אפֿשר מיר זענען באשלאסן, און מיר טאָן עס פֿאַר אַלע 100 סטודענטן. 24 00:01:38,380 --> 00:01:42,240 אבער וואָס אויב איר טאָן ניט וויסן ווי פילע סטודענטן עס פאקטיש זענען? 25 00:01:42,240 --> 00:01:47,320 עס זענען נאָר עטלעכע N סטודענטן און דיין פּראָגראַם האט צו פרעגן די באַניצער וואָס אַז N איז. 26 00:01:47,320 --> 00:01:50,250 אַ אָה. דאס איז נישט געגאנגען צו אַרבעט זייער גוט. 27 00:01:50,250 --> 00:01:53,820 דיין פּראָגראַם בלויז אַרבעט פֿאַר עטלעכע קעסיידערדיק נומער פון סטודענטן. 28 00:01:53,820 --> 00:01:57,520 >> סאַלווינג אַלע פון ​​די פראבלעמען איז די שיינקייט פון ערייז. 29 00:01:57,520 --> 00:01:59,930 אַזוי וואָס איז אַ מענגע? 30 00:01:59,930 --> 00:02:04,480 אין עטלעכע פּראָגראַממינג שפּראַכן אַ מענגע טיפּ זאל זייַן ביכולת צו טאָן אַ ביסל מער, 31 00:02:04,480 --> 00:02:09,960 אָבער דאָ מיר וועט פאָקוס אויף די גרונט מענגע דאַטן סטרוקטור פּונקט ווי איר וועט זען עס אין סי 32 00:02:09,960 --> 00:02:14,030 אַ מענגע איז נאָר אַ גרויס בלאָק פון זכּרון. אַז ס עס. 33 00:02:14,030 --> 00:02:17,770 ווען מיר זאָגן מיר האָבן אַ מענגע פון ​​10 ינטאַדזשערז, אַז נאָר מיטל מיר האָבן עטלעכע פאַרשפּאַרן 34 00:02:17,770 --> 00:02:20,740 פון זכּרון וואָס איז גרויס גענוג צו האַלטן 10 באַזונדער ינטאַדזשערז. 35 00:02:29,930 --> 00:02:33,410 אַסומינג אַז אַ ינטעגער איז 4 ביטעס, דעם מיטל וואָס אַ מענגע פון ​​10 ינטאַדזשערז 36 00:02:33,410 --> 00:02:37,180 איז אַ קעסיידערדיק בלאָק פון 40 ביטעס אין זכּרון. 37 00:02:42,660 --> 00:02:46,280 אפילו ווען איר נוצן מולטידימענסיאָנאַל ערייז, וואָס מיר וועלן ניט גיין אין צו דאָ, 38 00:02:46,280 --> 00:02:49,200 עס ס נאָך נאָר אַ גרויס בלאָק פון זכּרון. 39 00:02:49,200 --> 00:02:51,840 די מולטידימענסיאָנאַל נאָוטיישאַן איז נאָר אַ קאַנוויניאַנס. 40 00:02:51,840 --> 00:02:55,640 אויב איר האָבן אַ 3 דורך 3 מולטידימענסיאָנאַל מענגע פון ​​ינטאַדזשערז, 41 00:02:55,640 --> 00:03:00,650 דעמאָלט דיין פּראָגראַם וועט טאַקע נאָר מייַכל דעם ווי אַ גרויס בלאָק פון 36 ביטעס. 42 00:03:00,650 --> 00:03:05,460 די גאַנץ נומער פון ינטאַדזשערז איז 3 מאל 3, און יעדער ינטעגער נעמט אַרויף 4 ביטעס. 43 00:03:05,460 --> 00:03:07,750 >> זאל ס נעמען אַ קוק בייַ אַ גרונט בייַשפּיל. 44 00:03:07,750 --> 00:03:10,660 מיר קענען זען דאָ 2 פאַרשידענע וועגן פון דיקלערינג ערייז. 45 00:03:15,660 --> 00:03:18,580 מיר וועט האָבן צו באַמערקונג 1 פון זיי אויס פֿאַר די פּראָגראַם צו צונויפנעמען 46 00:03:18,580 --> 00:03:20,900 זינט מיר דערקלערן X צוויי מאָל. 47 00:03:20,900 --> 00:03:25,140 מיר וועט נעמען אַ קוק בייַ עטלעכע פון ​​די דיפעראַנסיז צווישן די 2 טייפּס פון דעקלעריישאַנז אין אַ ביסל. 48 00:03:25,140 --> 00:03:28,560 ביידע פון ​​די שורות דערקלערן אַ מענגע פון ​​גרייס ען, 49 00:03:28,560 --> 00:03:30,740 ווו מיר האָבן # דעפינירן ען ווי 10. 50 00:03:30,740 --> 00:03:34,460 מיר קען נאָר ווי לייכט האָבן געבעטן די באַניצער פֿאַר אַ positive ינטעגער 51 00:03:34,460 --> 00:03:37,250 און געוויינט אַז ינטעגער ווי אַ נומער פון עלעמענטן אין אונדזער מענגע. 52 00:03:37,250 --> 00:03:41,960 ווי אונדזער תּלמיד שייַן בייַשפּיל פאר, דאָס איז מין פון ווי דיקלערינג 10 גאָר באַזונדער 53 00:03:41,960 --> 00:03:49,000 ויסגעטראַכט וועריאַבאַלז; קס0, קס 1, קס 2, און אַזוי אויף אַרויף צו קסן-1. 54 00:03:57,270 --> 00:04:00,840 יגנאָרינג די שורות ווו מיר דערקלערן דעם מענגע, באַמערקן די קוואַדראַט בראַקאַץ בעשאָלעם 55 00:04:00,840 --> 00:04:02,090 ין די פֿאַר לופּס. 56 00:04:02,090 --> 00:04:09,660 ווען מיר שרייַבן עפּעס ווי X [3], וואָס איך וועט נאָר לייענען ווי X קאַנטיקער 3, 57 00:04:09,660 --> 00:04:13,090 איר קענען טראַכטן פון אים ווי אַסקינג פֿאַר די ויסגעטראַכט קס 3. 58 00:04:13,090 --> 00:04:17,519 נאָטיץ ווי מיט אַ מענגע פון ​​גרייס ען, דעם מיטל אַז די נומער ין פון די בראַקאַץ, 59 00:04:17,519 --> 00:04:22,630 וואָס מיר וועט רופן דער אינדעקס, קען זייַן עפּעס פון 0 צו N-1, 60 00:04:22,630 --> 00:04:25,660 וואָס איז אַ גאַנץ פון ען ינדיסעס. 61 00:04:25,660 --> 00:04:28,260 >> צו טראַכטן וועגן ווי דעם פאקטיש אַרבעט 62 00:04:28,260 --> 00:04:31,260 געדענקען אַז די מענגע איז אַ גרויס בלאָק פון זכּרון. 63 00:04:31,260 --> 00:04:37,460 אַסומינג אַז אַ ינטעגער איז 4 ביטעס, די גאנצע מענגע X איז אַ 40 ביטע בלאָק פון זכּרון. 64 00:04:37,460 --> 00:04:41,360 אַזוי קס0 רעפערס צו די זייער ערשטער 4 ביטעס פון דעם בלאָק. 65 00:04:45,810 --> 00:04:49,230 רענטגענ [1] רעפערס צו דער ווייַטער 4 ביטעס און אַזוי אויף. 66 00:04:49,230 --> 00:04:53,760 דאס מיטל אַז די אָנהייב פון X איז אַלע דער פּראָגראַם אלץ דאַרף צו האַלטן שפּור פון. 67 00:04:55,660 --> 00:04:59,840 אויב איר ווילן צו נוצן X [400], דעריבער די פּראָגראַם ווייסט אַז דאָס איז עקוויוואַלענט 68 00:04:59,840 --> 00:05:03,460 צו נאָר 1600 ביטעס נאָך די אָנהייב פון X. 69 00:05:03,460 --> 00:05:08,780 ווערד מיר באַקומען 1600 ביטעס פון? עס ס נאָר 400 מאל 4 ביטעס פּער ינטעגער. 70 00:05:08,780 --> 00:05:13,170 >> איידער מאָווינג אויף, עס ס זייער וויכטיק צו פאַרשטיין אַז אין C 71 00:05:13,170 --> 00:05:17,080 עס איז קיין ענפאָרסמאַנט פון די אינדעקס אַז מיר נוצן אין די מענגע. 72 00:05:17,080 --> 00:05:23,180 אונדזער גרויס בלאָק איז בלויז 10 ינטאַדזשערז לאַנג, אָבער גאָרנישט וועט שרייַען בייַ אונדז אויב מיר שרייַבן X [20] 73 00:05:23,180 --> 00:05:26,060 אָדער אַפֿילו X [-5]. 74 00:05:26,060 --> 00:05:28,240 די אינדעקס טוט נישט אַפֿילו האָבן צו זייַן אַ נומער. 75 00:05:28,240 --> 00:05:30,630 עס קענען זייַן קיין אַרביטראַריש אויסדרוק. 76 00:05:30,630 --> 00:05:34,800 אין דער פּראָגראַם מיר נוצן די בייַטעוודיק איך פון די פֿאַר שלייף צו אינדעקס אין די מענגע. 77 00:05:34,800 --> 00:05:40,340 דאס איז אַ זייער פּראָסט מוסטער, לופּינג פון איך = 0 צו די לענג פון די מענגע, 78 00:05:40,340 --> 00:05:43,350 און דעמאָלט ניצן איך ווי דער אינדעקס פֿאַר די מענגע. 79 00:05:43,350 --> 00:05:46,160 אין דעם וועג איר יפעקטיוולי שלייף איבער די גאנצע מענגע, 80 00:05:46,160 --> 00:05:50,600 און איר קענען אָדער באַשטימען צו יעדער אָרט אין די מענגע אָדער נוצן עס פֿאַר עטלעכע כעזשבן. 81 00:05:50,600 --> 00:05:53,920 >> אין דער ערשטער פֿאַר שלייף, איך סטאַרץ בייַ 0, 82 00:05:53,920 --> 00:05:58,680 און אַזוי עס וועט באַשטימען צו דעם 0 אָרט אין די מענגע, דער ווערט 0 מאל 2. 83 00:05:58,680 --> 00:06:04,370 דעמאָלט איך ינגקראַמאַנץ, און מיר באַשטימען די ערשטער אָרט אין די מענגע די ווערט 1 מאל 2. 84 00:06:04,370 --> 00:06:10,170 דעמאָלט איך ינגקראַמאַנץ ווידער און אַזוי אויף אַרויף ביז מיר באַשטימען צו שטעלע ען-1 אין די מענגע 85 00:06:10,170 --> 00:06:13,370 די ווערט ען-1 מאל 2. 86 00:06:13,370 --> 00:06:17,810 אַזוי מיר ווע באשאפן אַ מענגע מיט דעם ערשטער 10 אַפֿילו נומערן. 87 00:06:17,810 --> 00:06:21,970 אפֿשר יוואַנז וואָלט האָבן שוין אַ ביסל בעסער נאָמען פֿאַר די בייַטעוודיק ווי X, 88 00:06:21,970 --> 00:06:24,760 אָבער וואָס וואָלט האָבן געגעבן דאס אַוועק. 89 00:06:24,760 --> 00:06:30,210 די רגע פֿאַר שלייף דעמאָלט נאָר פּרינץ די וואַלועס אַז מיר האָבן שוין סטאָרד ין פון די מענגע. 90 00:06:30,210 --> 00:06:33,600 >> זאל ס פּרובירן פליסנדיק די פּראָגראַם מיט ביידע טייפּס פון מענגע דעקלעריישאַנז 91 00:06:33,600 --> 00:06:36,330 און נעמען אַ קוק אין דער רעזולטאַט פון דעם פּראָגראַם. 92 00:06:51,450 --> 00:06:57,020 ווי ווייַט ווי מיר קענען זען, די פּראָגראַם ביכייווז די זעלבע וועג פֿאַר ביידע טייפּס פון דעקלעריישאַנז. 93 00:06:57,020 --> 00:07:02,230 זאל ס אויך נעמען אַ קוק אין וואָס כאַפּאַנז אויב מיר טוישן די ערשטער שלייף צו נישט האַלטן בייַ ען 94 00:07:02,230 --> 00:07:05,040 אָבער אלא זאָגן 10,000. 95 00:07:05,040 --> 00:07:07,430 וועג ווייַטער פון די סוף פון די מענגע. 96 00:07:14,700 --> 00:07:17,210 אָאָפּס. אפֿשר איר ווע געזען דעם פריער. 97 00:07:17,210 --> 00:07:20,440 א סעגמאַנטיישאַן שולד מיטל דיין פּראָגראַם האט קראַשט. 98 00:07:20,440 --> 00:07:24,430 איר אָנהייב געזען די ווען איר פאַרבינדן געביטן פון זכּרון איר זאָל נישט זייַן רירנדיק. 99 00:07:24,430 --> 00:07:27,870 דאָ מיר זענען רירנדיק 10,000 ערטער ווייַטער פון די אָנהייב פון X, 100 00:07:27,870 --> 00:07:31,920 וואָס עווידענטלי איז אַ אָרט אין זכּרון מיר זאָל ניט זייַן רירנדיק. 101 00:07:31,920 --> 00:07:37,690 אַזוי רובֿ פון אונדז מיסטאָמע וואָלט נישט אַקסאַדענאַלי שטעלן 10,000 אַנשטאָט פון ען, 102 00:07:37,690 --> 00:07:42,930 אָבער וואָס אויב מיר טאָן עפּעס מער סאַטאַל ווי זאָגן שרייַבן ווייניקער ווי אָדער גלייַך צו ען 103 00:07:42,930 --> 00:07:46,830 אין די פֿאַר שלייף צושטאַנד ווי קעגן צו ווייניקער ווי ען 104 00:07:46,830 --> 00:07:50,100 געדענקען אַז אַ מענגע נאָר האט ינדיסעס פון 0 צו N-1, 105 00:07:50,100 --> 00:07:54,510 וואָס מיטל וואָס אינדעקס ען איז ווייַטער פון די סוף פון די מענגע. 106 00:07:54,510 --> 00:07:58,050 די פּראָגראַם זאל נישט קראַך אין דעם פאַל, אָבער עס ס נאָך אַ טעות. 107 00:07:58,050 --> 00:08:01,950 אין פאַקט, דעם טעות איז אַזוי פּראָסט, אז עס האט עס ס אייגן נאָמען, 108 00:08:01,950 --> 00:08:03,970 אַן אַוועק דורך 1 טעות. 109 00:08:03,970 --> 00:08:05,970 >> אַז ס עס פֿאַר די באַסיקס. 110 00:08:05,970 --> 00:08:09,960 אַזוי וואָס זענען די הויפּט דיפעראַנסיז צווישן די 2 טייפּס פון מענגע דעקלעריישאַנז? 111 00:08:09,960 --> 00:08:13,960 איין חילוק איז ווו די גרויס בלאָק פון זכּרון גייט. 112 00:08:13,960 --> 00:08:17,660 אין דער ערשטער דערקלערונג, וואָס איך וועט רופן דער קאַנטיקער-מענגע טיפּ, 113 00:08:17,660 --> 00:08:20,300 כאָטש דאָס איז דורך קיין מיטל אַ קאַנווענשאַנאַל נאָמען, 114 00:08:20,300 --> 00:08:22,480 עס וועט גיין אויף די אָנלייגן. 115 00:08:22,480 --> 00:08:27,450 וועראַז אין די רגע, וואָס איך וועט רופן די טייַטל-מענגע טיפּ, עס וועט גיין אויף די קופּע. 116 00:08:27,450 --> 00:08:32,480 דאס מיטל אַז ווען די פֿונקציע קערט, דער קאַנטיקער מענגע וועט אויטאָמאַטיש זייַן דעאַללאָקאַטעד, 117 00:08:32,480 --> 00:08:36,419 וועראַז ווי איר מוזן עקספּליסיטילי רופן פֿרייַ אויף די טייַטל מענגע 118 00:08:36,419 --> 00:08:38,010 אָדער אַנדערש איר האָבן אַ זכּרון רינען. 119 00:08:38,010 --> 00:08:42,750 אַדדיטיאָנאַללי, דער קאַנטיקער מענגע איז נישט פאקטיש אַ בייַטעוודיק. 120 00:08:42,750 --> 00:08:45,490 דאס איז וויכטיק. עס ס נאָר אַ סימבאָל. 121 00:08:45,490 --> 00:08:49,160 איר קענען טראַכטן פון אים ווי אַ קעסיידערדיק אַז דער קאַמפּיילער טשוזאַז פֿאַר איר. 122 00:08:49,160 --> 00:08:52,970 דאס מיטל אַז מיר קענען נישט טאָן עפּעס ווי X + + מיט דער קאַנטיקער טיפּ, 123 00:08:52,970 --> 00:08:56,240 כאָטש דאָס איז בישליימעס גילטיק מיט די טייַטל טיפּ. 124 00:08:56,240 --> 00:08:58,270 >> די טייַטל טיפּ איז אַ בייַטעוודיק. 125 00:08:58,270 --> 00:09:01,510 פֿאַר די טייַטל טיפּ, מיר האָבן 2 באַזונדער בלאַקס פון זכּרון. 126 00:09:01,510 --> 00:09:06,060 די בייַטעוודיק X זיך איז סטאָרד אין דעם אָנלייגן און איז נאָר אַ איין טייַטל, 127 00:09:06,060 --> 00:09:08,620 אָבער די גרויס בלאָק פון זכּרון איז סטאָרד אויף די קופּע. 128 00:09:08,620 --> 00:09:11,010 די בייַטעוודיק X אויף דעם אָנלייגן נאָר סטאָרז די אַדרעס 129 00:09:11,010 --> 00:09:14,010 פון די גרויס בלאָק פון זכּרון אויף די קופּע. 130 00:09:14,010 --> 00:09:17,370 איינער ימפּלאַקיישאַן פון דעם איז מיט די גרייס פון אָפּעראַטאָר. 131 00:09:17,370 --> 00:09:22,480 אויב איר פרעגן פֿאַר די גרייס פון דער קאַנטיקער מענגע, עס וועט געבן איר די גרייס פון דעם גרויס בלאָק פון זכּרון, 132 00:09:22,480 --> 00:09:24,620 עפּעס ווי 40 ביטעס, 133 00:09:24,620 --> 00:09:26,920 אָבער אויב איר פרעגן פֿאַר די גרייס פון דעם טייַטל טיפּ פון מענגע, 134 00:09:26,920 --> 00:09:32,740 עס וועט געבן איר די גרייס פון דעם בייַטעוודיק X זיך, וואָס אויף די אַפּפּליאַנסע איז מסתּמא פּונקט 4 ביטעס. 135 00:09:32,740 --> 00:09:36,530 ניצן די טייַטל-מענגע טיפּ, עס איז אוממעגלעך צו גלייַך פרעגן פֿאַר 136 00:09:36,530 --> 00:09:38,530 די גרייס פון דעם גרויס בלאָק פון זכּרון. 137 00:09:38,530 --> 00:09:42,530 דאס איז נישט יוזשאַוואַלי פיל פון אַ ריסטריקשאַן זינט מיר זייער ראַרעלי ווילן די גרייס 138 00:09:42,530 --> 00:09:46,980 פון די גרויס בלאָק פון זכּרון, און מיר קענען יוזשאַוואַלי רעכענען עס אויב מיר דאַרפֿן עס. 139 00:09:46,980 --> 00:09:51,490 >> צום סוף, דער קאַנטיקער מענגע כאַפּאַנז צו צושטעלן אונדז מיט אַ דורכוועג פֿאַר יניטיאַליזינג אַ מענגע. 140 00:09:51,490 --> 00:09:56,130 זאל ס זען ווי מיר קען שרייַבן די ערשטער 10 אַפֿילו ינטאַדזשערז ניצן די דורכוועג יניטיליזאַטיאָן. 141 00:10:11,220 --> 00:10:14,470 מיט די טייַטל מענגע, עס איז נישט אַ וועג צו טאָן אַ דורכוועג ווי דעם. 142 00:10:14,470 --> 00:10:18,120 דאס איז נאָר אַן הקדמה צו וואָס איר קענען טאָן מיט ערייז. 143 00:10:18,120 --> 00:10:20,990 זיי ווייַזן זיך אין כּמעט יעדער פּראָגראַם איר שרייַבן. 144 00:10:20,990 --> 00:10:24,390 אַלעווייַ איר קענען איצט זען אַ בעסער וועג פון טאן דעם תּלמיד ידס בייַשפּיל 145 00:10:24,390 --> 00:10:26,710 פון די אָנהייב פון די ווידעא. 146 00:10:26,710 --> 00:10:29,960 >> מייַן נאָמען איז ראָב באָוודען, און דאָס איז קס50.