gpt4 book ai didi

c++ - string pop_back 是如何在常数时间内实现的?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:23:17 26 4
gpt4 key购买 nike

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 如何在恒定时间内完成。

最佳答案

它不必重新分配。

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

关于c++ - string pop_back 是如何在常数时间内实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25323358/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com