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
|
template <typename T>
class Matrix
{
public:
typedef T type;
Matrix(size_t lines, size_t cols):lines(lines),cols(cols)
{
tab.reserve(lines*cols);
}
type& elementAt(size_t l, size_t l)
{
/* on peut envisager des vérifications */
if(l>=lines)
throw LinesOverflow();
if(c>=cols)
throw LinesOverflow();
return tab[l.lines+c];
}
void setElement(size_t l, size_t c, type const& p)
{
/* on peut envisager des vérifications */
if(l>=lines)
throw LinesOverflow();
if(c>=cols)
throw LinesOverflow();
/* on pourrait envisager de vérifier que l'élément à
* définir n'est pas encore défini
*/
tab[l*lines+c] = p;
}
private:
std::vector<type > tab;
}; |
Partager