gpt4 book ai didi

c++ - 如何在 C++ 中为输入迭代器实现 "dereference and post-increment"?

转载 作者:行者123 更新时间:2023-11-27 22:53:41 24 4
gpt4 key购买 nike

Requirements对于 InputIterator include *i++ 等价的表达式是

value_type x = *i;
++i;
return x;

如何在不实现标准后递增 i++ 返回非空值(InputIterators 不需要这样做)的情况下声明这样的运算符?

最佳答案

你可以使用一个代理来增加帖子:

#include <iostream>

class input_iterator
{
private:
class post_increment_proxy
{
public:
post_increment_proxy(int value) : value(value) {}
int operator * () const { return value; }

private:
int value;
};

public:
post_increment_proxy operator ++ (int) {
post_increment_proxy result{value};
++value;
return result;
}

private:
int value = 0;
};


int main() {
input_iterator i;
std::cout << *i++ << '\n';
std::cout << *i++ << '\n';
std::cout << *i++ << '\n';
}

关于c++ - 如何在 C++ 中为输入迭代器实现 "dereference and post-increment"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35165828/

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