gpt4 book ai didi

c++ - 我应该为范围(数组索引)使用什么类型?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:49:44 27 4
gpt4 key购买 nike

我需要编写一些返回数组内范围的函数(如果愿意,您可以假设它们被指定为起始位置和长度)。我不能返回一个元组,所以我需要返回一些其他类型(也许这是个好主意)。现在,我想返回一些既(有点)标准又不会因 vtables、复杂的 ctors 等而导致性能损失的东西。

想到的选项是:

  1. std::pair<unsigned> (或 std::pair<size_t> )。
  2. 一个包含两个 unsigned 的结构s(或 size_t 的)。
  3. 滚动我自己的 Range 类,用实用方法给它涂上糖衣。

我尝试寻找合适的 Range 类,但找不到。标准库/STL 中没有使用范围类,这有点奇怪。

有更好的选择吗?如果没有,您会推荐以上哪一个?

最佳答案

这个问题很难回答的主要原因是不清楚该范围将用于何种情况。甚至您可能还不清楚。

在这种情况下,我建议您创建自己的类(class),因为这样可以保持灵 active 。您可以根据需要添加成员函数和嵌套类型定义。

如果最后,当所有的用例都清楚了,所有的成员函数和辅助函数都定义好了,结果发现可以用pair来代替,那你还是可以用一个typedef来代替类

对于内部类型,我建议使用整数迭代器,除非您想存储大量这些范围(在这种情况下,空间优化很重要,两个整数(偏移量+长度)将有助于节省空间)。

关于c++ - 我应该为范围(数组索引)使用什么类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17781530/

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