forked from johannesgerer/jburkardt-cpp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcpp_arrays.html
202 lines (176 loc) · 5.11 KB
/
cpp_arrays.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
<html>
<head>
<title>
CPP_ARRAYS - Vectors, Matrices, Tensors in C++
</title>
</head>
<body bgcolor="#EEEEEE" link="#CC0000" alink="#FF3300" vlink="#000055">
<h1 align = "center">
CPP_ARRAYS <br> Vectors, Matrices, Tensors in C++
</h1>
<hr>
<p>
<b>CPP_ARRAYS</b>
is a directory of C++ programs which
illustrate the use of vectors, matrices and tensors.
</p>
<h3 align = "center">
Licensing:
</h3>
<p>
The computer code and data files described and made available on this web page
are distributed under
<a href = "../../txt/gnu_lgpl.txt">the GNU LGPL license.</a>
</p>
<h3 align = "center">
Languages:
</h3>
<p>
<b>CPP_ARRAYS</b> is available in
<a href = "../../c_src/c_arrays/c_arrays.html">a C version</a> and
<a href = "../../cpp_src/cpp_arrays/cpp_arrays.html">a C++ version</a>.
</p>
<h3 align = "center">
Related Data and Programs:
</h3>
<p>
<a href = "../../cpp_src/cpp/cpp.html">
CPP</a>,
C++ programs which
illustrate some features of the C++ language;
</p>
<p>
<a href = "../../cpp_src/cpp_intrinsics/cpp_intrinsics.html">
CPP_INTRINSICS</a>,
a C++ program which
illustrates the use of intrinsic functions.
</p>
<p>
<a href = "../../cpp_src/cpp_random/cpp_random.html">
CPP_RANDOM</a>,
C++ programs which
illustrate the use of the random number generator routines.
</p>
<h3 align = "center">
Reference:
</h3>
<p>
<ol>
<li>
Paul Deitel, Harvey Deitel,<br>
C++: How to Program,<br>
Seventh Edition,<br>
Prentice Hall, 2011,<br>
ISBN: 978-013-216541-9,<br>
LC: QA76.73.C153.D45.
</li>
<li>
Steve Oaulline,<br>
Practical C++ Programming,<br>
Second Edition,<br>
O'Reilly, 2003,<br>
ISBN: 1-56592-139-9,<br>
LC: QA76.73.C15.O84.
</li>
<li>
Bjarne Stroustrup,<br>
The C++ Programming Language,<br>
Addison-Wesley, 2000,<br>
ISBN: 0-201-70073-5,<br>
LC: QA76.73.C153.S77.
</li>
</ol>
</p>
<h3 align = "center">
Examples and Tests:
</h3>
<p>
<b>ARRAYS</b> is a very simple example of how to set up arrays in C++.
In particular, we note that vectors are easy to declare with fixed
or dynamic dimensions, but that arrays of dimension 2 or greater
aren't easy to declare dynamically. The example shows how to work
around this by settting up a two dimensional array as a one dimensional
vector.
<ul>
<li>
<a href = "arrays.cpp">arrays.cpp</a>,
the source code;
</li>
<li>
<a href = "arrays.sh">arrays.sh</a>,
a script to compile and run the program.
</li>
<li>
<a href = "arrays_output.txt">arrays_output.txt</a>,
the output file.
</li>
</ul>
</p>
<p>
<b>POINTERS</b> shows how a two-dimensional array can be defined,
either as row or column major, using pointers. Unfortunately,
the column major format means that the double indexing lists the
column index first!
<ul>
<li>
<a href = "pointers.cpp">pointers.cpp</a>,
the source code;
</li>
<li>
<a href = "pointers.sh">pointers.sh</a>, commands that
compile and run the source code;
</li>
<li>
<a href = "pointers_output.txt">pointers_output.txt</a>,
the output file;
</li>
</ul>
</p>
<p>
<b>TENSOR_EXAMPLE1</b> demonstrates how a 3D array can be created by
repeated used of the <b>vector</b> operator.
<ul>
<li>
<a href = "tensor_example1.cpp">tensor_example1.cpp</a>,
the source code;
</li>
<li>
<a href = "tensor_example1.sh">tensor_example1.sh</a>,
a script to compile and run the program.
</li>
<li>
<a href = "tensor_example1_output.txt">tensor_example1_output.txt</a>,
the output file.
</li>
</ul>
</p>
<p>
<b>TENSOR_EXAMPLE2</b> demonstrates how a 3D array can be created by
using a class child of std::vector, which implements a 3D array as a
linear vector. This is probably more efficient.
<ul>
<li>
<a href = "tensor_example2.cpp">tensor_example2.cpp</a>,
the source code;
</li>
<li>
<a href = "tensor_example2.sh">tensor_example2.sh</a>,
a script to compile and run the program.
</li>
<li>
<a href = "tensor_example2_output.txt">tensor_example2_output.txt</a>,
the output file.
</li>
</ul>
</p>
<p>
You can go up one level to <a href = "../cpp_src.html">
the C++ source codes</a>.
</p>
<hr>
<i>
Last revised on 07 October 2012.
</i>
<!-- John Burkardt -->
</body>
</html>