vector和string优先于动态分配的数组



每次当你发现自己要动态的分配一个数组时(例如想写“new T[]”时),你都应该考虑用vectorstring来代替。一般情况下,当T是字符类型时用string,否则用vector。不过在一种特殊的情况下,vector<char>可能是一种更为合理的选择。

许多string实现在背后使用了引用计数技术,这种策略可以消除不必要的内存分配和不必要的字符拷贝,从而可以提高很多应用程序的效率。可惜,对于一个程序员是优化的东西,对另一个程序员则未必。如果在多线程的环境中使用了引用计数的string,你会发现,由避免内存分配和字符拷贝所节省下来的时间还比不上花在背后同步控制上的时间。如果所使用的string是以引用计数方式来实现的,而你又运行在多线程环境中,并认为string的引用计数实现会影响效率,那么,考虑使用vector<char>而不是stringvector的实现不允许使用引用计数,所以不会发生隐藏的多线程性能问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值