麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C > 正文

實例說明下標操作符重載模擬多維數組

2020-02-24 14:29:57
字體:
來源:轉載
供稿:網友

相信很多程序員在開發的時候,都會遇到瓶頸的時候,這個時候我們要怎么處理呢?網上查詢信息?但是很多知識在網絡上是沒辦法查找到的,今天武林技術頻道小編為大家帶來實例說明下標操作符重載模擬多維數組

?

??? template <typename T_CELL_STYLE>
??? class CMap
??? {
??? public:
??????? CMap(IN UINT row_num, IN UINT col_num,
????????????????? IN T_CELL_STYLE cell_style = static_cast<T_CELL_STYLE>(0));

??????? // 下標操作符重載
??????? typename vector<T_CELL_STYLE>::iterator operator[](IN UINT x);

?

??? public:
??????? const UINT m_ROW_NUM;??? // 地圖網格行數
??????? const UINT m_COL_NUM;??? // 地圖網格列數
??? private:
??????? vector<T_CELL_STYLE> _m_map_data;??? // 存放地圖數據

??? }; /* class CMap */


我們知道下標操作符重載不能編寫成如下形式:
T_CELL_STYLE operator[][](IN UINT x, IN UINT y);

?

雖然不能直接實現一對下標操作符重載,但是我們可以間接模擬。

思路是這樣的,先通過單下標操作返回一個具有下標操作能力的左值,對左值進行下標操作,兩個下標操作表達式聯立就實現了雙下標操作。先看如下示例:

?

??? // 地圖尺寸
??? #define _MAP_ROW?? 30
??? #define _MAP_COL??? 36
??? // 地圖單元格樣式
??? typedef enum {
??????? _CELL_GROUND,
??????? _CELL_GRASS,
??????? _CELL_BRICK,
??????? _CELL_STEEL,
??????? _CELL_WATER
??? } CELLSTYLE;

??? CMap<CELLSTYLE> myMap(_MAP_ROW, _MAP_COL, _CELL_GROUND);
??? // 獲取地圖第3行第5列單元格樣式
??? vector<T_CELL_STYLE>::iterator iter = myMap[3];
??? CELLSTYLE aCell = iter[5];


我們將上面兩個下標操作表達式聯立,如下:
CELLSTYLE aCell myMap[3][5];

?

這樣就得到了雙下標操作,看起來就像操作二維數組。好了,讓我們來看一下如何重載。

?

??? template <typename T_CELL_STYLE>
??? inline typename vector<T_CELL_STYLE>::iterator
??? CMap<T_CELL_STYLE>::operator[](IN UINT x)
??? {
??????? if (m_ROW_NUM <= x)
??????? {
??????????? overflow_error e("overflow - CMap<T_CELL_STYLE>::operator[]");
??????????? throw(e);
??????? }
??????? return _m_map_data.begin() + x * m_COL_NUM;
??? }

?以上就是武林技術頻道小編介紹的關于實例說明下標操作符重載模擬多維數組,其實這個介紹對于初級程序員應該是很需要的,希望大家可以分配好時間進行學習哦。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 免费色片| 亚洲极色 | 国产精品视频自拍 | 羞羞网站 | 久久久www视频 | 国产精品久久久久国产精品三级 | 久久久www成人免费毛片 | 男女生羞羞视频网站在线观看 | 国产一国产一级毛片视频 | 五月激情久久 | 在线视频a | 中文字幕四区 | 一区二区三区在线观看av | 国产精品久久久久久久久久 | 91短视频在线观看 | 国产亚洲精彩视频 | 日本精品婷婷久久爽一下 | 午夜视频在线观看免费视频 | 日本中文视频 | 一级黄色片武则天 | 成人午夜免费看 | 日韩精品网站在线观看 | 中国美女一级黄色片 | 深夜福利视频免费观看 | 欧美久久久一区二区三区 | 国产免费大片视频 | 亚洲欧美国产高清va在线播放 | 国产成年人视频网站 | 狠狠干天天 | 亚洲啊v在线观看 | 国产亚洲区 | 午夜视频中文字幕 | 亚洲无马在线观看 | a一级黄 | 国产免费一区二区三区 | 国产色视频在线观看免费 | 精品亚洲在线 | 国产精品久久久久久久娇妻 | 成人免费区 | 成人午夜一区二区 | 日韩精品中文字幕一区二区 |