gpt4 book ai didi

c++ - std::string size() 是 O(1) 操作吗?

转载 作者:IT老高 更新时间:2023-10-28 12:52:48 24 4
gpt4 key购买 nike

std::string size() 是 O(1) 运算吗?

我使用的 STL 的实现是 VC++ 内置的

最佳答案

如果您要问 MSVC 的 string::size() 实现是否具有恒定的复杂性,那么答案是肯定的。但是Don Wakefield提到了 C++ 标准 23.1 中的表 65,它说 size() 的复杂性应该遵循“注释 A”中所说的内容。注 A 说:

Those entries marked ‘‘(Note A)’’ should have constant complexity.

但是,这并不意味着这些条目应该具有恒定的复杂性。标准使用非常具体的术语,“应该”意味着它不是强制性的。

'Note A' 被添加到标准中,以安抚那些认为应该允许 size() 具有线性复杂度的人,因此在容器被放置时不需要保持大小修改。

所以你不能依赖 size() 具有恒定的复杂性,但老实说,我不确定是否有任何实现没有恒定的 string::size( )

关于c++ - std::string size() 是 O(1) 操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/256033/

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