读书人

CString str[100]与vectorlt;CStringgt;哪

发布时间: 2013-11-14 22:02:51 作者: rapoo

CString str[100]与vector<CString>,哪个效率高?
如题...大家一般是怎么用
[解决办法]
vector再优化算法再精妙也只能无限的接近传统的数组而不能效率更高.
[解决办法]
当然是CString cstr[100]比vector<CString> vstr高
高在他的memory是分配在stack上的
但是cstr[55]和vstr[55],也就是使用array最常用的
random access,效率则是一样的
论功能性则是vstr高的多

若要降低vstr分配memory的开销,最常见的方法是把vstr
cache起来,善用reserve,resize,clear

vc++系列的vector由于有进行一些检查,效率较低
不过你可以下一个macro叫编译器不要进行检查


[解决办法]
如果大小固定了,建议使用数组,在栈上
[解决办法]

引用:
固定的话str[100]就可以.

但如果不是所有都会用到, 那么延迟去new比较好,也就是vector<Cstring *>

真要用到*,建议用smart pointer保护
vector<std::unique_ptr<CString>>
一般上都是vector<CString>就够了

welcome back to modern c++
http://msdn.microsoft.com/en-us/library/vstudio/hh279654.aspx
[解决办法]
std::array<CString,100> str;

更好

读书人网 >C++

热点推荐