c – 带有静态内存而不是动态分配的vector <>
我正在开发一个嵌入式应用程序,我喜欢使用像std :: vector<>这样的容器.不幸的是我不能使用堆.所以std :: vector<>无法使用.所以我正在寻找替代方案.
我见过boost static_vector,但据我所见,对于微控制器来说,升压方法似乎太重了.或者是否有使用小型微控制器上升压的经验(例如只有static_vector?) 可以做出一个假设:在整个应用程序运行时期间的最大条目数在编译时是已知的. 所以我想知道是否有任何开源解决方案,或者我是否必须自己实现一个基于std :: array<>的容器.实现并添加一些逻辑以启用以下操作: 在运行时添加(push_back())和删除(erase())元素.提供典型的容器迭代器和随机访问.此外,(:)循环的简写应该是可用的. 所以我的天真方法是: >提供迭代器,随机访问对我来说似乎很容易,而且应该主要基于std :: array<>功能 解决方法
您可以使用自定义
std::allocator 创建
std::vector ,例如从静态缓冲区返回指针.
重读你的问题,你说容器内的条目总数在编译时是已知的,为什么不使用std :: array,甚至是一个好的老式数组呢? 对于范围based for loop ( (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |