亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

下標操作符重載模擬多維數組詳解

2020-01-26 15:51:47
字體:
來源:轉載
供稿:網友

最近在寫游戲,就以地圖類模版為例說明如何模擬多維數組吧!

復制代碼 代碼如下:

    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;
    }

看到了吧,是不是很簡單,中間過程借用了一個具有下標操作能力的類類型成員。

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

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲sss综合天堂久久| 亚洲成人av片在线观看| 成人黄色片网站| 麻豆一区二区在线观看| 中文字幕精品在线视频| 精品动漫一区二区| 国产成人精品一区二区在线| 欧美激情乱人伦| 国产精品xxx视频| 国产精品成人观看视频国产奇米| 一夜七次郎国产精品亚洲| 国产在线98福利播放视频| 国内精品视频久久| 45www国产精品网站| www.亚洲免费视频| 热久久99这里有精品| 国产成人在线播放| 欧美综合第一页| 亚洲精品一区二区三区不| 性欧美暴力猛交69hd| 夜夜嗨av色一区二区不卡| 欧美日韩在线免费观看| 国产精品h片在线播放| 亚洲国产精品系列| 国产婷婷成人久久av免费高清| 97在线视频免费| 久久免费成人精品视频| 欧美午夜性色大片在线观看| 久久av在线播放| 隔壁老王国产在线精品| 欧美日韩免费区域视频在线观看| 国产精品一区二区三区久久| 国产婷婷成人久久av免费高清| 亚洲天堂久久av| 色在人av网站天堂精品| 久久精品国产欧美亚洲人人爽| 国产欧美久久一区二区| 亚洲人成在线观看网站高清| 亚洲成人精品在线| 欧美亚洲国产日韩2020| 姬川优奈aav一区二区| 麻豆成人在线看| 91网站在线免费观看| 中文字幕视频一区二区在线有码| 91久久国产婷婷一区二区| 中文字幕在线观看亚洲| 久久精品夜夜夜夜夜久久| 日韩精品在线观看视频| 成人国产精品一区| 日韩av一区在线| 亚洲美女av电影| 欧美日韩亚洲成人| 国内伊人久久久久久网站视频| 91精品国产综合久久久久久蜜臀| 欧美精品久久久久久久久久| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲视频在线免费看| 国产精品99久久久久久久久| 国产精品美女av| 国内精品久久久久影院优| www日韩中文字幕在线看| 中文字幕欧美日韩| 亚洲人成电影网站色xx| 一区三区二区视频| 91欧美激情另类亚洲| 日韩理论片久久| 欧美xxxx14xxxxx性爽| 国模吧一区二区三区| 97精品免费视频| 热久久视久久精品18亚洲精品| 国色天香2019中文字幕在线观看| 97视频在线观看成人| 成人网中文字幕| 性色av一区二区咪爱| 国产精品免费一区豆花| 国产精品自产拍在线观| 成人黄色激情网| 一区二区三区久久精品| 91精品久久久久久| 成人免费福利视频| 久久综合九色九九| 欧美一级淫片丝袜脚交| 91在线|亚洲| 欧美精品videossex88| 欧美日韩在线一区| 国产有码一区二区| 国产精品丝袜久久久久久不卡| 91在线免费视频| 日韩欧美成人网| 日韩美女中文字幕| 91精品国产91久久久久久不卡| 日韩亚洲成人av在线| 国产精品日韩在线观看| 国产精品成人va在线观看| 91av在线精品| 国产精品com| 亚洲男人天堂2024| 久久久久久久久国产精品| 国产精品美女免费| 亚洲摸下面视频| 国产午夜精品久久久| 免费av一区二区| 色综合老司机第九色激情| 亚洲国产精品va在线看黑人| 尤物九九久久国产精品的分类| 欧美日韩国产一区中文午夜| 国产婷婷色综合av蜜臀av| 亚洲精品天天看| 久久精品99久久久久久久久| 国产日韩中文字幕在线| 色播久久人人爽人人爽人人片视av| 日韩精品在线影院| www.色综合| 欧美综合第一页| 青青草原成人在线视频| 欧美在线免费观看| 久久这里有精品视频| 久久国产精品电影| 久久久久999| 国产伦精品免费视频| 欧美激情亚洲精品| 97国产精品视频| 亚洲最大的成人网| 欧美激情国产高清| 国产成人拍精品视频午夜网站| 久久久久久久久久久网站| 国产精品久久久久久久久借妻| 欧美巨乳美女视频| 日韩av在线免费观看一区| 成人黄在线观看| 久久影院资源站| 中文精品99久久国产香蕉| 日韩国产精品亚洲а∨天堂免| 国产成人短视频| 久久国产精品免费视频| 亚洲国产精品网站| 日本精品久久久久久久| 亚洲欧美www| 日韩av手机在线观看| 欧美尺度大的性做爰视频| 欧美国产日韩一区二区三区| 欧美视频一二三| 国产精品久久一区主播| 亚洲精品久久久久久下一站| 国产精品毛片a∨一区二区三区|国| 欧美性猛交xxxx富婆| 国产精品久久久久久久电影| 久久免费少妇高潮久久精品99| 欧美精品在线网站| 91综合免费在线| 日韩欧亚中文在线| 97在线看免费观看视频在线观看| 国产91精品在线播放| 亚洲天堂日韩电影| 久色乳综合思思在线视频| 91中文在线视频| 国产精品日韩在线| 亚洲色图在线观看| 97在线精品视频| 岛国视频午夜一区免费在线观看| 国产精品91免费在线| 欧美亚洲国产日韩2020| 久久久久久久久久久久av| 欧美日韩一区免费|