+++ /dev/null
-
-/**
- * Author: Mark Larkin
- *
- * Copyright (c) 2007 Des Higgins, Julie Thompson and Toby Gibson.
- */
-#include<iostream>
-#include <vector>
-#include <iomanip>
-namespace clustalw
-{
-using namespace std;
-
-template <class T>
-class SquareMat
-{
-public:
- SquareMat():m_dimRow(0), m_dimCol(0){;}
- SquareMat(int size)
- {
- m_dimRow = size;
- m_dimCol = size;
- for (int i=0; i < size; i++)
- {
- vector<T> x(size);
- int y = x.size();
- m_2DVector.push_back(x);
- }
- }
- void SetAt(int nRow, int nCol, const T& value)
- {
- m_2DVector[nRow][nCol] = value;
- }
- T GetAt(int nRow, int nCol)
- {
- return m_2DVector[nRow][nCol];
- }
- void GrowRow(int newSize)
- {
- if (newSize <= m_dimRow)
- return;
- m_dimRow = newSize;
- for(int i = 0 ; i < newSize - m_dimCol; i++)
- {
- vector<T> x(m_dimRow);
- m_2DVector.push_back(x);
- }
- }
- void GrowCol(int newSize)
- {
- if(newSize <= m_dimCol)
- return;
- m_dimCol = newSize;
- for (int i=0; i <m_dimRow; i++)
- m_2DVector[i].resize(newSize);
- }
-
- void ResizeRect(int size)
- {
- GrowRow(size);
- GrowCol(size);
- }
-
- int getSize()
- {
- return m_dimRow;
- }
-
- void clearArray()
- {
- int size = m_2DVector.size();
- for(int i = 0; i < size; i++)
- {
- m_2DVector[i].clear();
- }
- m_2DVector.clear();
- m_dimRow = 0;
- m_dimCol = 0;
-
- }
-
- void printArray()
- {
- for(int row=0; row < m_dimRow; row++)
- {
- for(int col=0; col < m_dimCol; col++)
- {
- cout << setprecision(20) << " "<< m_2DVector[row][col];
- }
- cout<<"\n";
- }
- }
-
- vector<T>& operator[](int x)
- {
- return m_2DVector[x];
- }
-
-private:
- vector< vector <T> > m_2DVector;
- unsigned int m_dimRow;
- unsigned int m_dimCol;
-};
-
-}
-