好的,所以這是我得到的一個面試問題,並且只在當時表現平平。我想知道最佳解決方案是什麼以及如何最好地實施。如何在幾個已排序的列表上創建一個迭代器?
給你多個排序列表,構造東西,它允許我們遍歷從最小元素到最大元素的所有這些列表。
例子:
{ -2, 5, 10}
{ 2, 9, 11}
{ -5, 9}
-> -5, -2, 2, 5, 9, 9, 10, 11
更新:
隨着從SO聊天#C-問題 - 和 - 答案和@Nican特別是一些幫助,我收到了此船以某種方式飛行。我已經發布了我的工作代碼作爲允許其他解決方案的答案。
我在下面發佈的答案仍然很混亂,尤其是我沒有正確實現==和!=。我仍然需要幫助。
理由爲這個問題
尋找乾淨,簡約定製迭代器實現在線是並不常見。我相信這個問題可能成爲其他人加強對迭代器和最佳實踐的理解的良好起點。
不太確定你的意思是*「執行end()來檢查底層的哪一端是最大的。」*我看不出這對你有什麼幫助。只要'end()'返回一個帶有標識符的迭代器對象,該標識符告訴你你在序列的末尾。然後確保你的'=='運算符處理它。對於前向迭代器編寫'++',賦值運算符等等,然後重構一個'const_iterator'。 – MFisherKDX