Templated Matrix class
bearophile
bearophileHUGS at lycos.com
Sat Apr 18 11:27:48 PDT 2009
import std.stdio: writefln;
import std.string: format;
class Matrix(T) {
private T[][] m;
this() {}
this(int r, int c) {
this.m = new T[][](r, c);
}
this(int r, int c, T x) {
this.m = new T[][](r, c);
foreach (ref row; this.m)
row[] = x;
}
T opIndex(int r, int c) {
return this.m[r][c];
}
void opIndexAssign(T)(T x, int r, int c) {
this.m[r][c] = x;
}
int rows() {
return this.m.length;
}
int cols() {
return this.m[].length;
}
string toString() {
// this isn't much efficient
string result;
foreach (row; this.m)
result ~= format("%s\n", row);
return result;
}
}
void main() {
auto m = new Matrix!(int)(10, 5);
writefln(m);
m[3, 2] = 1;
writefln(m);
}
Bye,
bearophile
More information about the Digitalmars-d
mailing list