【发布时间】:2018-07-10 22:14:10
【问题描述】:
在 C++ 中使用数组时,有没有一种简单的方法可以像 Python 的 : 那样一次访问数组的多个索引?
例如我有一个长度为 100 的数组 x。如果我想要 Python 中这个数组的前 50 个值,我可以写 x[0:50]。在 C++ 中,除了 x[0,1,2,...,49] 之外,还有更简单的方法来访问数组的同一部分吗?
【问题讨论】:
-
取决于您对该切片执行的操作。我倾向于一对指针。
-
除了 x[0,1,2,...,49] 吗?我猜你的意思是
x[0], x[1], x[2]...用于单个元素。访问数组的一部分的方法是通过迭代器 -
如果数组元素是原始类型,
std::memcpy将是一个不错的选择。 -
@Quentin 我想分配/更新数组的那部分。
-
这还取决于您是在谈论原始 C 样式数组还是
std::array。 (而std::vector是另一个需要考虑的类)。我会推荐使用这些类,这里的答案可能会有所帮助。 stackoverflow.com/questions/11102029/… 如果您想修改原始数组中的相关元素,您可以考虑将其设为 int 引用或指针数组。或者只是让函数进行修改接受begin和end参数。