可持久化数据结构库 immer

GPL
C/C++ 查看源码»
跨平台
2016-11-28
王练

immer 是一个用 C ++ 编写的可持久化和不可更改的数据结构库。

  • 可持久化意味着当您修改数据结构时,将保留旧值。

  • 不可更改意味着所有的操作方法都是const。

对象不会在适当位置修改,但会返回新值。 因为旧值仍然存在并且永远不会改变,所以新值可以透明地保持对它的公共部分的引用。 这个属性被称为结构共享。

举例:

#include <immer/vector.hpp>
int main()
{
    const auto v0 = immer::vector<int>{}
    const auto v1 = v0.push_back(13);
    assert(v0.size() == 0 && v1.size() == 1 && v1[0] == 13);

    const auto v2 = v1.set(0, 42);
    assert(v1[0] == 13 && v2[0] == 42);
}


    的码云指数为
    超过 的项目
    加载中

    评论(0)

    暂无评论

    暂无资讯

    暂无问答

    immer.js 实战讲解文档

    文章在 github 开源, 欢迎 Fork 、Star ! 前言 Immer 是 mobx 的作者写的一个 immutable 库,核心实现是利用 ES6 的 proxy,几乎以最小的成本实现了 js 的不可变数据结构,简单易用、体量小...

    03/01 20:22
    0
    0
    精读《重新思考 Redux》

    本周精读内容是 [《重新思考 Redux》](https://hackernoon.com/redesigning-redux-b2baee8b8a38)。 ## 1 引言 《重新思考 Redux》是 [rematch](https://github.com/rematch/rematch) 作者 [S...

    2018/05/14 09:00
    18
    0
    Championship T20 BlastO

    Championship T20 BlastO

    2015/06/06 11:38
    2
    0
    sales calls for good

    sales calls for good

    2015/05/29 13:18
    2
    0
    Cease to live Diesel Uhr selbst könnte viele Varia

    diesel Limited Edition

    2014/10/20 16:25
    6
    0

    没有更多内容

    加载失败,请刷新页面

    没有更多内容

    返回顶部
    顶部