gpt4 book ai didi

C++ for-range 循环

转载 作者:太空狗 更新时间:2023-10-29 21:03:26 28 4
gpt4 key购买 nike

我在玩范围循环,例如:

for (auto i : range) {

相当于

auto it = range.begin();
auto i = *it;

但我想要的是:

for (auto it : range) {
*it; // the it var is not derefernced by range loop

有没有办法做到这一点?也许是这样的:

for (auto it : make_range(range)) {
*it; // the it var is not derefernced by range loop

....

目前我找到的一个解决方案是使用 boost::irange,例如:

for (auto it : irange(range.begin(), range.end())) {

最佳答案

for-range 循环的全部目的是遍历容器的内容。所以不,没有 native 方法来访问循环使用的迭代器。如果你需要,你不应该一开始就使用 for-range 循环。在 for-range 循环中访问容器迭代器的唯一选择是编写一个自定义适配器类,它包装容器并公开它自己的迭代器,在取消引用时返回容器迭代器。然后您遍历适配器而不是直接遍历容器。

关于C++ for-range 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13391318/

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