首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

CString str[100]与vector<CString>哪个效率高?解决思路

2013-11-14 
CString str[100]与vectorCString,哪个效率高?如题...大家一般是怎么用[解决办法]vector再优化算法再精

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;

更好

热点排行