⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c2vector.h

📁 文化算法的实际应用
💻 H
字号:
#include <vector>
using namespace std;

template <class T>
class C2DVector
{
public:
   C2DVector():m_dimRow(0), m_dimCol(0){;}
   C2DVector(int nRow, int nCol) {
      m_dimRow = nRow;
      m_dimCol = nCol;
      for (int i=0; i < nRow; i++){
         vector<T> x(nCol);
         int y = x.size();
         m_2DVector.push_back(x);
      }
   }
   void SetAt(int nRow, int nCol, const T& value) throw(std::out_of_range) {
      if(nRow >= m_dimRow || nCol >= m_dimCol)
         throw out_of_range("Array out of bound");
      else
         m_2DVector[nRow][nCol] = value;
   }
   T GetAt(int nRow, int nCol) {
      if(nRow >= m_dimRow || nCol >= m_dimCol)
         throw out_of_range("Array out of bound");
      else
         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<int> 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);
   }
   vector<T>& operator[](int x)    {
      return m_2DVector[x];
   }
private:
   vector< vector <T> > m_2DVector;
   unsigned int m_dimRow;
   unsigned int m_dimCol;
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -