加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 矢量对字符串的好处?

发布时间:2020-12-16 03:37:00 所属栏目:百科 来源:网络整理
导读:这个问题与 this question有关,但不完全相同. 使用std :: vector char有什么好处吗?而不是std :: string来保存任意的二进制数据,除了可读性相关的问题? 即与字符串相比,是否有任何更容易/更有效/更好地使用向量执行的任务? 解决方法 除了可读性(不应该被
这个问题与 this question有关,但不完全相同.

使用std :: vector< char>有什么好处吗?而不是std :: string来保存任意的二进制数据,除了可读性相关的问题?

即与字符串相比,是否有任何更容易/更有效/更好地使用向量执行的任务?

解决方法

除了可读性(不应该被低估),我可以想到使用std :: string over std :: vector的几个次要的性能/内存问题:

>一些现代的std :: string实现使用small string optimization.如果你正在存储大于字符串内部缓冲区的数据,它将变得一个悲观,降低了复制,移动和交换1的效率,并增加了sizeof(),从而没有任何好处.
>一个有效的std :: string实现将总是分配至少比当前大小多1个字节来存储一个终止的null(不要这样做需要额外的逻辑在operator []来处理str [size()]).

我应该强调,这两个问题都很小;他们的性能成本在背景噪声中将更有可能丢失.但你确实问过.

1如果使用小字符串优化,那么这些操作需要在size()上进行分支,而它们不是在一个很好的std :: vector实现中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读