【发布时间】:2020-01-16 18:24:40
【问题描述】:
许多语言都允许对可迭代数据类型进行迭代,并在迭代时跟踪其位置。比如……
Python:
for index, value in enumerate(some_list):
...
红宝石/水晶:
some_list.each_with_index do |value, index|
...
end
生锈:
for (value, index) in some_iterable.enumerate() {
...
}
等等等等
根据迭代器的不同,简单地使用普通的 for 循环也可能效率低下:
for(int i = 0; i < some_list.size(); i++) {
auto value = some_list[i];
}
C++ 有没有什么方法可以表达类似的概念?
【问题讨论】:
-
我认为没有这样的内置结构,但实现起来应该很简单。您可以创建一个迭代器,以成对返回元素及其索引,也可以使用en.cppreference.com/w/cpp/language/structured_binding。