gpt4 book ai didi

C++:字符串 vector 的随机访问时间如何工作?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:50:13 25 4
gpt4 key购买 nike

我知道一个简单的 int vector 有 O(1) 的随机访问时间,因为它很容易计算第 x 个元素的位置,给定所有元素都具有相同的大小。

现在字符串 vector 怎么了?

由于字符串长度不同,它不能有 O(1) 的随机访问时间,不是吗?如果可以,背后的逻辑是什么?

谢谢。

更新:

回答的非常清楚简洁,谢谢大家的帮助。我接受了 Joey 的回答,因为它简单易懂。

最佳答案

vector 确实有 O(1) 的访问时间。

String 对象都具有相同的大小(在给定的实现上),无论它们表示的字符串的大小如何。通常,字符串对象包含指向已分配内存的指针,该内存包含字符串数据。

因此,如果 s 是一个 std::string,则 sizeof s 是常量并等于 sizeof(std: :string),但 s.size() 取决于字符串值。 vector 只关心 sizeof(std::string)

关于C++:字符串 vector 的随机访问时间如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3753474/

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