A proof of concept of a semistable C++ vector container
2 months ago
- #Data Structures
- #C++
- #Iterator Stability
- semistable::vector 提供迭代器稳定性,与 std::vector 不同,后者在插入和删除时会失效迭代器。
- 它以连续方式存储元素,并保持与 std::vector 相同的 API,但提供额外的迭代器稳定性保证。
- 该库使用 epoch 描述符跟踪变更,确保迭代器在解引用时正确调整。
- 性能基准测试显示 semistable::vector 操作与 std::vector 相当,使用原始指针可能实现某些优化。
- 线程安全性有限;并发迭代器使用或修改需要采取预防措施。
- 该库为仅头文件形式,依赖 Boost.Config,需要 C++11 或更高版本。
- 未来改进可能包括更好的异常安全性和对未定义迭代器使用的检测。