Skip to content

Commit 3df7461

Browse files
committed
[Update] Add multidimensional arrays
1 parent 4ba3c82 commit 3df7461

File tree

3 files changed

+42
-17
lines changed

3 files changed

+42
-17
lines changed

Arrays/main.cpp

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,15 @@
1010
#include <iomanip>
1111
#include <array>
1212

13-
void RangeBasedForStatement();
13+
const std::size_t rows{2};
14+
const std::size_t columns{3};
15+
void rangeBasedForStatement();
16+
void printArray(const std::array<std::array<int, columns>, rows>&);
1417

1518
int main(int argc, const char * argv[]) {
19+
std::array<std::array<int, columns>, rows> array1{1, 2, 3, 4, 5, 6};
20+
std::array<std::array<int, columns>, rows> array2{1, 2, 3, 4, 5};
21+
1622
// const variable can be used to delcare array size
1723
const std::size_t arraySize{5}; // must initialize in declaration
1824
std::array<int, arraySize> n{89, 378, 3, 45, 78}; // list initializer
@@ -27,12 +33,18 @@ int main(int argc, const char * argv[]) {
2733
std::cout << std::setw(7) << i << std::setw(10) << n[i] << std::endl;
2834
}
2935
std::cout << "The sum of all the elements in the array is " << total << std::endl;
30-
RangeBasedForStatement();
36+
rangeBasedForStatement();
37+
38+
std::cout << "Values in array1 by row are: "<< std::endl;
39+
printArray(array1);
40+
41+
std::cout << "\nValues in array2 by row are: "<< std::endl;
42+
printArray(array2);
3143
return 0;
3244
}
3345

3446
// this function demonstrates a range-based for statement
35-
void RangeBasedForStatement() {
47+
void rangeBasedForStatement() {
3648
std::array<int, 5> items{1, 2, 3, 4, 5};
3749

3850
// display items before modification
@@ -54,3 +66,16 @@ void RangeBasedForStatement() {
5466

5567
std::cout << std::endl;
5668
}
69+
70+
// multidimensional Arrays
71+
// Output array with two rows and three columns
72+
void printArray(const std::array<std::array<int, columns>, rows>& a) {
73+
// loop through the array rows
74+
for (auto const& row : a) {
75+
// loop through the elements of the current row
76+
for (auto const& element : row) { // auto tells the compiler to infer (determine) a variables data type based on the variables initializer value
77+
std::cout << element << " ";
78+
}
79+
std::cout << std::endl; // start a new line output
80+
}
81+
}
444 Bytes
Binary file not shown.

Line23.xcodeproj/xcuserdata/samuelmuloki.xcuserdatad/xcschemes/xcschememanagement.plist

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,22 @@
77
<key>Arrays.xcscheme_^#shared#^_</key>
88
<dict>
99
<key>orderHint</key>
10-
<integer>12</integer>
10+
<integer>13</integer>
1111
</dict>
1212
<key>Classes.xcscheme_^#shared#^_</key>
1313
<dict>
1414
<key>orderHint</key>
15-
<integer>8</integer>
15+
<integer>6</integer>
1616
</dict>
1717
<key>ControlFlow.xcscheme_^#shared#^_</key>
1818
<dict>
1919
<key>orderHint</key>
20-
<integer>7</integer>
20+
<integer>8</integer>
2121
</dict>
2222
<key>CounterControlled.xcscheme_^#shared#^_</key>
2323
<dict>
2424
<key>orderHint</key>
25-
<integer>9</integer>
25+
<integer>10</integer>
2626
</dict>
2727
<key>GradeBook.xcscheme_^#shared#^_</key>
2828
<dict>
@@ -32,52 +32,52 @@
3232
<key>Line23.xcscheme_^#shared#^_</key>
3333
<dict>
3434
<key>orderHint</key>
35-
<integer>0</integer>
35+
<integer>1</integer>
3636
</dict>
3737
<key>MathLibraryFunctions.xcscheme_^#shared#^_</key>
3838
<dict>
3939
<key>orderHint</key>
40-
<integer>10</integer>
40+
<integer>11</integer>
4141
</dict>
4242
<key>PassByReference.xcscheme_^#shared#^_</key>
4343
<dict>
4444
<key>orderHint</key>
45-
<integer>11</integer>
45+
<integer>9</integer>
4646
</dict>
4747
<key>calc.xcscheme_^#shared#^_</key>
4848
<dict>
4949
<key>orderHint</key>
50-
<integer>1</integer>
50+
<integer>0</integer>
5151
</dict>
5252
<key>evenOdd.xcscheme_^#shared#^_</key>
5353
<dict>
5454
<key>orderHint</key>
55-
<integer>2</integer>
55+
<integer>3</integer>
5656
</dict>
5757
<key>factorial.xcscheme_^#shared#^_</key>
5858
<dict>
5959
<key>orderHint</key>
60-
<integer>6</integer>
60+
<integer>7</integer>
6161
</dict>
6262
<key>functionTemplates.xcscheme_^#shared#^_</key>
6363
<dict>
6464
<key>orderHint</key>
65-
<integer>13</integer>
65+
<integer>12</integer>
6666
</dict>
6767
<key>perfectNumbers.xcscheme_^#shared#^_</key>
6868
<dict>
6969
<key>orderHint</key>
70-
<integer>4</integer>
70+
<integer>5</integer>
7171
</dict>
7272
<key>primeNumbers.xcscheme_^#shared#^_</key>
7373
<dict>
7474
<key>orderHint</key>
75-
<integer>5</integer>
75+
<integer>2</integer>
7676
</dict>
7777
<key>swap.xcscheme_^#shared#^_</key>
7878
<dict>
7979
<key>orderHint</key>
80-
<integer>3</integer>
80+
<integer>4</integer>
8181
</dict>
8282
</dict>
8383
<key>SuppressBuildableAutocreation</key>

0 commit comments

Comments
 (0)