好的,所以这是我得到的一个面试问题,并且只在当时表现平平。我想知道最佳解决方案是什么以及如何最好地实施。如何在几个已排序的列表上创建一个迭代器?
给你多个排序列表,构造东西,它允许我们遍历从最小元素到最大元素的所有这些列表。
例子:
{ -2, 5, 10}
{ 2, 9, 11}
{ -5, 9}
-> -5, -2, 2, 5, 9, 9, 10, 11
更新:
随着从SO聊天#C-问题 - 和 - 答案和@Nican特别是一些帮助,我收到了此船以某种方式飞行。我已经发布了我的工作代码作为允许其他解决方案的答案。
我在下面发布的答案仍然很混乱,尤其是我没有正确实现==和!=。我仍然需要帮助。
理由为这个问题
寻找干净,简约定制迭代器实现在线是并不常见。我相信这个问题可能成为其他人加强对迭代器和最佳实践的理解的良好起点。
不太确定你的意思是*“执行end()来检查底层的哪一端是最大的。”*我看不出这对你有什么帮助。只要'end()'返回一个带有标识符的迭代器对象,该标识符告诉你你在序列的末尾。然后确保你的'=='运算符处理它。对于前向迭代器编写'++',赋值运算符等等,然后重构一个'const_iterator'。 – MFisherKDX