gpt4 book ai didi

c++ - 使用 int 而不是 size_t 索引来访问 vector 元素会降低性能吗?

转载 作者:太空狗 更新时间:2023-10-29 20:37:42 25 4
gpt4 key购买 nike

如果我使用 int 索引访问一个 vector 元素,它会将整数转换为 size_t,然后调用 operator[](size_t)功能?有没有性能下降?

最佳答案

intsize_t 的主要区别在于int 是有符号的,而size_t 是无符号的。此外,两者可能具有不同的大小,因为这两种类型都是平台特定的并且彼此独立。

当两个大小相同时,从 intsize_t 的转换是空操作,因此不会影响性能。

当大小不同时,编译器足够聪明,可以将 int 索引的部分或扩展值传递到 operator [] 中,取 size_t几乎没有开销,因为缩小尺寸需要部分加载,而扩大尺寸需要为上部加载零。但是请注意,为扩展值的上部写入零不是额外的操作,因为它替换size_t 类型的索引复制上部。

因此,答案是否定的,您不会看到任何性能差异。

关于c++ - 使用 int 而不是 size_t 索引来访问 vector 元素会降低性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34066907/

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