【发布时间】:2017-07-02 15:22:41
【问题描述】:
我需要帮助弄清楚为什么当我运行此代码时它会打印
(8,8) (8,8) (0,8) (7,8) (6,8) (5,8) (4,8) (3,8) (1,8) (0,8) (8,8) 在屏幕上。
我不明白递增和递减运算符如何在函数g 中对迭代器u 和v 起作用。
我知道该集合将包含元素 0、1、3、4、5、6、7、8。但我不明白“遍历”集合是如何工作的。
template <typename T>
std::complex<double> g(T &u, T &v) { return {*--u, *v++}; }
std::set<int> s{3, 8, 4, 7, 0, 1, 1, 5, 7, 3, 6};
std::set<int>::iterator v(s.begin()), w(s.end());
while (v != w) std::cout << g(v, w) << " ";
std::cout << std::endl;
【问题讨论】:
-
这时你需要使用一些调试方法。使用打印调试或使用调试器,并在程序运行时逐行遍历程序。这就是你看到程序内部发生的事情的方式。
-
当你运行它时,它会打印什么?你期待什么?请编辑您的问题以包含它。
-
我确实这样做了,但我仍然不明白为什么迭代器 v 的常量值为 8。