declaration assignment arrays...assignment and access arrays as parameters to functions...
TRANSCRIPT
![Page 1: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/1.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Arrays
Comp Sci 1570 Introduction to C++
![Page 2: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/2.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Outline
1 Array basicsDeclarationDefinitionAssignment
2 Multi-dimensional arraysDeclarationAccessAssignment and access
3 Arrays as parameters to functionsMultidimensional arrays to functions
4 Sorting arrays
5 Random stuff
![Page 3: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/3.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Outline
1 Array basicsDeclarationDefinitionAssignment
2 Multi-dimensional arraysDeclarationAccessAssignment and access
3 Arrays as parameters to functionsMultidimensional arrays to functions
4 Sorting arrays
5 Random stuff
![Page 4: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/4.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Array declaration
• An array is a series of elements of the same type placed incontiguous memory locations that can be individuallyreferenced by adding an index to a unique identifier.
• That means that, for example, five values of type int canbe declared as an array without having to declare 5different variables (each with its own identifier).
• Instead, using an array, the five int values are stored incontiguous memory locations, and all five can be accessedusing the same identifier, with the proper index.
• For example, an array containing 5 integer values of typeint called foo could be represented as:
i n t f o o [ 5 ] ;
![Page 5: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/5.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Outline
1 Array basicsDeclarationDefinitionAssignment
2 Multi-dimensional arraysDeclarationAccessAssignment and access
3 Arrays as parameters to functionsMultidimensional arrays to functions
4 Sorting arrays
5 Random stuff
![Page 6: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/6.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Definition
i n t f o o [ 5 ] = { 16 , 2 , 77 , 40 , 12071 } ;
The number of values between braces shall not be greaterthan the number of elements in the array. For example, in theexample above, foo was declared having 5 elements (asspecified by the number enclosed in square brackets, []), andthe braces contained exactly 5 values, one for each element.
![Page 7: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/7.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Fill remainder with 0’s
If declared with less, the remaining elements are set to theirdefault values (which for fundamental types, means they arefilled with zeroes). For example:
i n t bar [ 5 ] = { 10 , 20 , 30 } ;
![Page 8: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/8.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Fill all with 0’s
The initializer can even have no values, just the braces:
i n t baz [ 5 ] = { } ;
![Page 9: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/9.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Outline
1 Array basicsDeclarationDefinitionAssignment
2 Multi-dimensional arraysDeclarationAccessAssignment and access
3 Arrays as parameters to functionsMultidimensional arrays to functions
4 Sorting arrays
5 Random stuff
![Page 10: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/10.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Assignment to and from arrays
For example, the following statement stores the value 75 in thethird element of foo:
f o o [ 2 ] = 7 5 ;
x = f o o [ 2 ] ;
and, for example, the above copies the value of the thirdelement of foo to a variable called x:
![Page 11: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/11.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Initialize to data size
It is possible to declare an array and initialize it with asequence of elements, but no size specified:
double c o l l e c t i o n [ ] = { 1 . 0 , 3 . 5 , 0 . 5 , 7 . 2 } ;
![Page 12: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/12.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Outline
1 Array basicsDeclarationDefinitionAssignment
2 Multi-dimensional arraysDeclarationAccessAssignment and access
3 Arrays as parameters to functionsMultidimensional arrays to functions
4 Sorting arrays
5 Random stuff
![Page 13: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/13.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Indexing in multidimensional arrays
![Page 14: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/14.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Outline
1 Array basicsDeclarationDefinitionAssignment
2 Multi-dimensional arraysDeclarationAccessAssignment and access
3 Arrays as parameters to functionsMultidimensional arrays to functions
4 Sorting arrays
5 Random stuff
![Page 15: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/15.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Declaration
i n t jimmy [ 3 ] [ 5 ] ;
![Page 16: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/16.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Outline
1 Array basicsDeclarationDefinitionAssignment
2 Multi-dimensional arraysDeclarationAccessAssignment and access
3 Arrays as parameters to functionsMultidimensional arrays to functions
4 Sorting arrays
5 Random stuff
![Page 17: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/17.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Access
cout << jimmy [ 1 ] [ 3 ] ;
![Page 18: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/18.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Outline
1 Array basicsDeclarationDefinitionAssignment
2 Multi-dimensional arraysDeclarationAccessAssignment and access
3 Arrays as parameters to functionsMultidimensional arrays to functions
4 Sorting arrays
5 Random stuff
![Page 19: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/19.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Assignment and access
const i n t WIDTH 5const i n t HEIGHT 3i n t jimmy [ HEIGHT ] [ WIDTH ] ;i n t n ,m;
i n t main ( ){
f o r ( n=0; n < HEIGHT ; n++)f o r (m=0; m < WIDTH; m++){
jimmy [ n ] [m]=( n+1)∗(m+1);}
}
![Page 20: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/20.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Multidimensional array options
Two-dimensional arrays with initializer lists can omit (only) theleftmost length specification:
i n t a r r a y [ ] [ 5 ] ={{ 1 , 2 , 3 , 4 , 5 } ,{ 6 , 7 , 8 , 9 , 10 } ,{ 11 , 12 , 13 , 14 , 15 }} ;
![Page 21: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/21.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Multidimensional array options
NOT OK. The compiler can do the math to figure out whatthe array length is. However, the following is not allowed:
i n t a r r a y [ ] [ ] ={{ 1 , 2 , 3 , 4 } ,{ 5 , 6 , 7 , 8 }} ;
![Page 22: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/22.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Outline
1 Array basicsDeclarationDefinitionAssignment
2 Multi-dimensional arraysDeclarationAccessAssignment and access
3 Arrays as parameters to functionsMultidimensional arrays to functions
4 Sorting arrays
5 Random stuff
![Page 23: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/23.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Arrays as parameters to functions
• In C++, we don’t want to pass the entire block ofmemory represented by an array to a function directly asan argument.
• But what can be passed instead is its address.
• In practice, this has almost the same effect, and it is amuch faster and more efficient operation.
void p r o c e d u r e ( i n t ar g [ ] )
i n t main ( ){
i n t myarray [ 4 0 ] ;p r o c e d u r e ( myarray ) ;
. . .
![Page 24: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/24.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Outline
1 Array basicsDeclarationDefinitionAssignment
2 Multi-dimensional arraysDeclarationAccessAssignment and access
3 Arrays as parameters to functionsMultidimensional arrays to functions
4 Sorting arrays
5 Random stuff
![Page 25: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/25.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Multidimensional arrays to functions
Notice that the first brackets [] are left empty, while thefollowing ones specify sizes for their respective dimensions.Including the other dimensions is necessary in order for thecompiler to be able to determine the depth of each additionaldimension.
void p r o c e d u r e ( i n t myarray [ ] [ 3 ] [ 4 ] ) ;
![Page 26: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/26.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Outline
1 Array basicsDeclarationDefinitionAssignment
2 Multi-dimensional arraysDeclarationAccessAssignment and access
3 Arrays as parameters to functionsMultidimensional arrays to functions
4 Sorting arrays
5 Random stuff
![Page 27: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/27.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
See code demos
Bubble, selection, insertion
![Page 28: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/28.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
Outline
1 Array basicsDeclarationDefinitionAssignment
2 Multi-dimensional arraysDeclarationAccessAssignment and access
3 Arrays as parameters to functionsMultidimensional arrays to functions
4 Sorting arrays
5 Random stuff
![Page 29: Declaration Assignment Arrays...Assignment and access Arrays as parameters to functions Multidimensional arrays to functions Sorting arrays Random stu Arrays as parameters to functions](https://reader034.vdocuments.us/reader034/viewer/2022042620/5f3a50b4ca228c6c8a2314b8/html5/thumbnails/29.jpg)
Array basics
Declaration
Definition
Assignment
Multi-dimensionalarrays
Declaration
Access
Assignment andaccess
Arrays asparameters tofunctions
Multidimensionalarrays tofunctions
Sorting arrays
Random stuff
More tips on PRNG
Please see code from day on random number generators, sinceit has been updated with some new tricks.