91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

自定義C++ Array類以支持多維數組

發布時間:2024-07-19 11:16:06 來源:億速云 閱讀:88 作者:小樊 欄目:編程語言

下面是一個簡單的C++ Array類,用于支持多維數組:

#include <vector>

template <typename T>
class Array {
private:
    std::vector<T> data;
    std::vector<size_t> shape;

public:
    Array(const std::vector<size_t>& shape) : shape(shape) {
        size_t size = 1;
        for (size_t s : shape) {
            size *= s;
        }
        data.resize(size);
    }

    T& operator()(const std::vector<size_t>& indices) {
        size_t index = 0;
        size_t multiplier = 1;
        for (size_t i = 0; i < indices.size(); i++) {
            index += indices[i] * multiplier;
            multiplier *= shape[i];
        }
        return data[index];
    }
};

使用示例:

int main() {
    Array<int> arr({2, 3});
    arr({0, 0}) = 1;
    arr({0, 1}) = 2;
    arr({0, 2}) = 3;
    arr({1, 0}) = 4;
    arr({1, 1}) = 5;
    arr({1, 2}) = 6;

    std::cout << arr({0, 0}) << std::endl;
    std::cout << arr({0, 1}) << std::endl;
    std::cout << arr({0, 2}) << std::endl;
    std::cout << arr({1, 0}) << std::endl;
    std::cout << arr({1, 1}) << std::endl;
    std::cout << arr({1, 2}) << std::endl;

    return 0;
}

這個Array類實現了一個簡單的多維數組,可以通過傳入不同維度的shape來創建不同維度的數組。可以通過傳入一個包含各個維度下標的向量來訪問和修改數組中的元素。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

迁安市| 海兴县| 祁门县| 宁夏| 阳西县| 乐平市| 柳河县| 天峻县| 淄博市| 临城县| 隆回县| 峨山| 新巴尔虎左旗| 专栏| 杭锦后旗| 茂名市| 通渭县| 峨边| 应用必备| 阿拉善右旗| 光泽县| 虞城县| 梓潼县| 江川县| 渭源县| 那曲县| 永顺县| 建湖县| 萨迦县| 大新县| 隆回县| 屏边| 武陟县| 新建县| 玉门市| 防城港市| 临汾市| 金沙县| 平遥县| 永丰县| 津南区|