Set up the outside array as your columns and the inside array as your rows. Now, creating a new column is simple and adding an entry to an existing column is still easy. Maybe something along the lines of:
sub new { my $class = shift; my ($max_rows) = @_; my $self = bless { max_rows => $max_rows, data => [], }, $class; } sub add_column { my $self = shift; push @{$self->{data}}, []; } sub add_value { my $self = shift; my ($x, $y, $value) = @_; return unless $x <= $max_rows; return unless $x >= 0; $self->{data}[$y][$x] = $value; } sub get_value { my $self = shift; my ($x, $y) = @_; return $self->{data}[$y][$x]; }
------
We are the carpenters and bricklayers of the Information Age.
Then there are Damian modules.... *sigh* ... that's not about being less-lazy -- that's about being on some really good drugs -- you know, there is no spoon. - flyingmoose
I shouldn't have to say this, but any code, unless otherwise stated, is untested
In reply to Re: Resizable Matrix, or similar data structure.
by dragonchild
in thread Resizable Matrix, or similar data structure.
by PerlingTheUK
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |