<prompt> Kuna tofauti gani kati ya kumbukumbu na Sanduku kwenye kutu?  <response>: Katika kutu, rejeleo ni kielekezi cha thamani inayomilikiwa na kigeu kingine au muundo wa data, ilhali Sanduku ni muundo wa data unaomiliki thamani na hutoa njia ya kugawa thamani hiyo kwenye lundo.Marejeleo hutumiwa kukopa maadili bila kuchukua umiliki wao. Zinaonyeshwa na ampersand kabla ya jina la kutofautisha. Kwa mfano:acha x 5;acha y x; y ni marejeleo ya xKatika mfano huu, y ni rejeleo la thamani ya x. Marejeleo y yanaweza kutumika kusoma thamani ya x, lakini haiwezi kutumika kurekebisha thamani ya x moja kwa moja.Kwa upande mwingine, Sanduku ni muundo wa data ambao hutenga kumbukumbu kwenye lundo na kuhifadhi thamani hapo. Sanduku linaundwa kwa kutumia chaguo za kukokotoa Box::new, na linaweza kuachwa kwa kutumia opereta . Kwa mfano:let x Box::mpya5;acha y x; y ni nakala ya thamani katika xKatika mfano huu, x ni Sanduku ambalo linamiliki thamani 5. Thamani inaweza kufikiwa kwa kuondoa x kwa kutumia opereta , kama inavyoonyeshwa katika zoezi la y.Tofauti kuu kati ya rejeleo na Sanduku ni umiliki. Rejeleo halimiliki thamani inayoelekeza, ilhali Sanduku linamiliki. Hii ina maana kwamba marejeleo hayawezi kuhamishwa au kurekebishwa, wakati Sanduku linaweza. Zaidi ya hayo, Sanduku linaweza kutumika kutenga thamani kwenye lundo, ambayo inaweza kuwa muhimu katika hali ambapo ukubwa wa thamani haujulikani wakati wa kukusanya au ambapo thamani inahitaji kushirikiwa kati ya sehemu nyingi za programu. Maagizo: Ni katika hali gani ningetaka kutumia rejeleo dhidi ya kisanduku? Jibu: Hali ambapo unaweza kutaka kutumia marejeleo badala ya Sanduku ni kama ifuatavyo:- Epuka kusogeza data kwenye kumbukumbu, ambayo inaweza kuboresha utendakazi.- Fikia au urekebishe data sawa katika sehemu tofauti za nambari yako bila kuhamisha umiliki.- Tekeleza vitendaji vinavyofanya kazi na data iliyokopwa badala ya kupitisha data yote kwenye chaguo la kukokotoa.Wakati hali ambapo unaweza kutaka kutumia Sanduku badala ya marejeleo ni:- Unapokuwa na muundo mkubwa wa data na unataka kuhamisha umiliki bila kunakili data.- Wakati unahitaji kuunda miundo ya data inayojirudia, kama vile orodha zilizounganishwa au miti.- Unapotaka kutumia vitu vya sifa aina zinazotumwa kwa nguvu, ambazo zinahitaji kontena iliyotengwa, ya ukubwa ili kushikilia kitu.Kwa muhtasari, tumia rejeleo unapotaka kufikia au kurekebisha data kwa muda bila kuchukua umiliki, na utumie Sanduku unapohitaji mgao wa lundo, uhamishaji wa umiliki, au utumaji unaobadilika. 