Here's a class that creates a 2 dimensional array very easily and
efficiently:
template < class T, int ROW_T = 0, int COL_T = 0 >
class dynamic_2d_array
{
public:
dynamic_2d_array(int row, int col):m_row(row),m_col(col),
m_data((row!=0&&col!=0)?new T[row*col]:NULL){}
dynamic_2d_array():m_row(ROW_T),m_col(COL_T), m_data(new
T[ROW_T*COL_T])
{if (!COL_T || !ROW_T) {int x[ROW_T] = {{ROW_T}};int y[COL_T] =
{{x[0]}};}}
~dynamic_2d_array(){if(m_data) delete []m_data;}
T* operator[](int i) {return (m_data + (m_col*i));}
T const*const operator[](int i) const {return (m_data + (m_col*i));}
private:
const int m_row;
const int m_col;
T* m_data;
};
The above class can be delcare and used in the following maner:
dynamic_2d_array < char > My_dynamic_2d_array(3, 20);
My_dynamic_2d_array[2][11] = 99;
cout << My_dynamic_2d_array[2][11] << endl;
You can also use a vector<vector<char> > type object.
For more information on this class, see the following link:
http://axter.com/faq/topic.asp?TOPIC...CAT_ID=9&Topi-
c_Title=How+to+create+dynamic+two%2Ddimensional+ar rays&Forum_Title=-
C%2FC%2B%2B
Also check out the multidimensional class in the following link:
http://axter.com/faq/topic.asp?TOPIC...AT_ID=9&Topic-
_Title=How+to+create+dynamic+Multi%2Ddimensional+a rrays&Forum_Title=-
C%2FC%2B%2B
--
Top ten Expert at Experts-Exchange
Posted via
http://dbforums.com