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

c – 如何在常量时间内实现字符串pop_back?

发布时间:2020-12-16 09:53:46 所属栏目:百科 来源:网络整理
导读:std :: string pop_back():删除字符串的最后一个元素 在C规范中,据说C 11字符串类函数pop_back具有恒定的时间复杂度. (更确切地说 – 未指定但通常不变) http://www.cplusplus.com/reference/string/string/pop_back/ 除此之外我读了C 11规范的草案,据说pop
std :: string pop_back():删除字符串的最后一个元素

在C规范中,据说C 11字符串类函数pop_back具有恒定的时间复杂度.

(更确切地说 – 未指定但通常不变)

http://www.cplusplus.com/reference/string/string/pop_back/

除此之外我读了C 11规范的草案,据说pop_back等于str.erase(str.length() – 1).据我所知,擦除功能只需分配一个新的内存量,并将剩余的元素(未删除)复制到此内存中,这将占用线性时间.鉴于此,pop_back如何在恒定时间内完成.

解决方法

它不必重新分配.

该函数可能只是用零覆盖最后一个字符并减少一些长度信息.

(编辑:李大同)

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

    推荐文章
      热点阅读