Hasty Briefsbeta

双语

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 或更高版本。
  • 未来改进可能包括更好的异常安全性和对未定义迭代器使用的检测。