当前位置:  开发笔记 > 编程语言 > 正文

向量的小字符串优化?

如何解决《向量的小字符串优化?》经验,为你挑选了2个好方法。

我知道几个(所有?)STL实现实现了一个"小字符串"优化,而不是存储开始,结束和容量的通常3个指针,如果sizeof(字符),字符串将实际字符数据存储在用于指针的内存中<= sizeof(指针).我处于一种情况,我有很多小矢量,元素大小<= sizeof(指针).我不能使用固定大小的数组,因为向量需要能够动态调整大小并且可能会变得非常大.但是,矢量的中值(非平均)大小仅为4-12个字节.所以适应矢量的"小字符串"优化对我来说非常有用.这样的事情存在吗?

我正在考虑通过简单的蛮力将矢量转换为字符串,即为字符串提供矢量接口.好主意?



1> onqtam..:

Boost 1.58刚刚发布,它的Container库有一个基于LLVM 的small_vector类SmallVector.

还有一种static_vector不能超过最初给定尺寸的产品.两个容器都是标题.

facebook的愚蠢图书馆也有一些很棒的容器.

它有一个small_vector可以配置模板参数的功能,如boost staticsmall矢量.它也可以配置为使用小整数类型为它的内部大小簿记,因为它们是facebook并不奇怪:)

有一些工作正在进行,以使图书馆跨平台,所以Windows/MSVC支持有一天应该降落......



2> Thomas Petit..:

您可以从LLVM 借用SmallVector实现.(仅限标题,位于LLVM\include\llvm\ADT中)


它不再是标题了.
推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有