c – std :: vector和LLVM :: SmallVector有什么区别?哪一个使
发布时间:2020-12-16 05:35:38 所属栏目:百科 来源:网络整理
导读:我试图了解在LLVM中使用SmallVector容器.我认为std :: vector可以在小向量的地方使用.如果我们在llvm :: SmallVector中推送更多元素而不是它的大小,会发生什么? 解决方法 llvm::SmallVector 是针对小型阵列优化的矢量.此优化来自不对有限数量的元素执行堆分
我试图了解在LLVM中使用SmallVector容器.我认为std :: vector可以在小向量的地方使用.如果我们在llvm :: SmallVector中推送更多元素而不是它的大小,会发生什么?
解决方法llvm::SmallVector 是针对小型阵列优化的矢量.此优化来自不对有限数量的元素执行堆分配.
如果您添加的元素多于使用自动存储分配的元素,它将回退到std :: vector的行为并分配更大和更大的数组. llvm::SmallVector<int,10> smallVector; for(int i = 0; i < 10; i++) { smallVector.push_back(i); } // No heap allocations have been performed up to this point. smallVector.push_back(11); // Only 10 spaces for non heap allocated elements,// so the push_back above causes a heap allocation. 当您知道持续拥有少量元素并且不会遇到堆分配时,SmallVector可以获得性能优势.这种性能优势是以异常安全为代价的,并且依赖于llvm库. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- XmlSerialize error: There was an error generating the X
- ruby-on-rails – 点击Google Contacts API时发现“由对等连
- 领域]在实践中展望。。。(写给DDD注释版)
- C++编写的页面淘汰算法LRU
- ajax动态更换局部块
- flex – Actionscript 3 – 解析yyyy-mm-dd hh:mm:ss到Da
- PostgreSQL基础1
- objective-c – 在copyWithZone中为可变子类返回[self reta
- Swift Compiler Error Arithmetic operation '** &#
- jira 6.1.3打开上传屏幕截屏界面后跳转到oracle页面