C++ map 查詢 插入

定義pair的key

map<pair<int, int>, double> hashMap

map查詢是否成存在key使用.count返回0/1

if(hashMap.count({a, b}) == 0)

pair的key直接{a, b}

map插入key直接hashMap[key]即可

hashMap[{a, b}] = 0.25 

 

double search(map<pair<int, int>, double> &hashMap, int a, int b) {
        if (a <= 0 && b > 0) {
            return 1;
        } else if ((a <= 0 && b <= 0)) {
            return 0.5;
        } else if (b <= 0){//B先分配完
            return 0;
        } else {
            if (hashMap.count({a, b}) == 0) {
                hashMap[{a, b}] = 0.25 * (search(hashMap, a - 4, b) + 
                                        search(hashMap, a - 3, b - 1) + 
                                        search(hashMap, a - 2, b - 2) + 
                                        search(hashMap, a - 1, b - 3));
            } 
            return hashMap[{a, b}];
        }
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章