Sunrisepeak / dstruct

🔥An easy-to-port/learn/use C++ data structure template library | 一个易于移植/使用/学习且结构简洁的数据结构模板库
https://github.com/Sunrisepeak/DStruct
Apache License 2.0
40 stars 2 forks source link
algorithms-and-data-structures data-structures ds dstruct easy-to-learn generic-programming

DStruct | 重构WIP - 开发看板

DStruct 是一个易于移植且结构简洁的数据结构模板库

特性 - 用法 - 谁在用? - 其他 - English
接口规范 - 静态内存分配器(SMA) - 移植介绍 - 文档 - 相关视频

特性

用法

1. 源码及配置

2. 代码用例 - 动态内存

#include <iostream>
#include <dstruct.hpp>

int main() {
    dstruct::Array<int, 10> arr(2);

    decltype(arr)::ValueType val = 6;
    arr[0] = arr[-1] = val;

    for (int i = 0; i < arr.size(); i++) {
        std::cout << arr[-(i + 1)] << " : " << arr[i] << std::endl;
    }

    return 0;
}

3. 代码用例 - 静态内存

使用静态内存SMA, 支持无内存管理环境(如: 裸机)

#include <dstruct.hpp>

int main() {
    //dstruct::Vector<int> dVec;
    dstruct::smemory::Vector<int> sVec;

    for (int i = 0; i < 10; i++) {
        sVec.push_back(i);
    }

    for (auto v : sVec)
        DSTRUCT_ASSERT(v == i++);

    while (!sVec.empty()) {
        sVec.pop_back();
    }

    return 0;
}

注: 静态数据结构定义在dstruct::smemory空间里, 其他接口及用法同动态内存支持的数据结构一样

谁在用?

其他