这里已经提到了vector vs valarray的问题.我的问题专门针对C++ 11的情况.我一直在阅读"C++之旅"和"C++编程语言".这两本书都是由Bjarne Stroustrup撰写的.在第一本书中,作者解释说std::valarray
应该首选数值计算(第12章).但是在第二章的第29章中,作者用a实现了一个Matrix类std::vector
.
通过谷歌搜索,似乎在性能方面,a std::vector
与动态分配"原始数组"一样快.
那么在C++ 11的上下文中,哪个容器应该是数值计算的首选?
我对此的看法是,因为std::vector
使用operator[]
(它返回对数据的引用而没有边界检查)提供对其内容的快速访问,并且使用std::vector
动态分配的数组也更安全,std::vector
应该是首选.此外,从C++ 11开始:
std::vector
使用提供对底层数据的直接访问 std::vector::data()
std::vector::shrink_to_fit()
归档时间: |
|
查看次数: |
1194 次 |
最近记录: |