Arrays in het programmeren van computers zijn collecties of reeksen van waarden in een enkele variabele naam . Deze datastructuren waarmee programmeurs gegevensreeksen of gegevenslijsten vormen voor verschillende doeleinden , zoals sorteren of iteratie . Echter , in vele programmeertalen zoals C /C + + , arrays programmeurs moeten statisch , onveranderlijke reeks maten verklaren. Door het gebruik van het geheugen allocatie technieken in een taal zoals C + + , de programmeur kan dynamisch arrays maken of resize zelfs degenen arrays terwijl het programma loopt . Arrays lager niveau talen zoals C of C + + , arrays zijn statisch . Verklaarde eens met een grootte waarde , zal die array altijd onderhouden van die grootte . De compiler kent een blok van continue geheugen voor de array . Alle andere functies of variabelen die geheugen nodig zal na de array worden geplaatst . Derhalve kan de matrix niet verandert grootte zonder overschrijven van de gegevens die erop volgt . Dus, bijvoorbeeld , wanneer een programmeur verklaart een array met twintig ruimten , zal de matrix altijd twintig ruimten , of zij niet worden gebruikt of voor het leven van de gegevensstructuur . Geheugentoewijzing op de hoop om deze beperking te omzeilen , maar programmeurs geheugen op de heap wijzen . Normaal worden variabelen en arrays gedeclareerd in een programma of functie bovenaan de stapel , die in wezen is kortetermijngeheugen . Nadat de levensduur van de functie de array bestaat op afwerking , wordt de array verwijderd . Door het gebruik van de " nieuwe " keyword echter de programmeur kan geheugen te verzamelen van de Heap , die lange-termijn geheugen , dat buiten de functie , dat verklaart de array bestaat. Bovendien kan de programmeur de Heap gebruiken om arrays dynamisch verklaren . Dynamische Arrays Met arrays , de programmeur heeft om de grootte van de array te verklaren op verklaring . Deze maat moet worden vertegenwoordigd door een constante waarde , kan een constante of variabele een integer . Echter , met behulp van de " nieuwe " exploitant , de programmeur kan reguliere variabelen gebruiken om grootte arrays , en de gebruiker kan zelfs de waarde van deze variabelen in te voeren tijdens de runtime. Het volgende voorbeeld toont het verschil : int main ( ) { int arr [ 5 ] ; //nieuwe array , moet formaat met constante valueint size = 5 zijn; int * dynamic_array = new int [ size] ; //grootte van de matrix is dynamisch arrays formaat p Met deze dynamische arrays , kan de programmeur vervolgens arrays die kunnen worden aangepast . De " vector " -klasse staat voor een dynamisch groeiende of krimpende array die gebruik maken van dynamische arrays Taks . Het volgende voorbeeld illustreert hoe u een eenvoudige array die groter in omvang groeit creëren : int main ( ) { int * arr = new int [ 5 ] ; int new_size = 10 ; < br > arr [ 0 ] = 1 ; arr [ 1 ] = 2 ; /* resize * /int * arr2 = new int [ new_size ] ; arr2 [ 0 ] = arr [ 0 ] ; arr2 [ 1 ] = arr [ 1 ] ; delete [ ] arr ; arr = arr2 ; return 0 ; } < br >
|