281 鋸齒迭代器

2021-10-09 10:19:39 字數 1170 閱讀 9377

題目描述:

給出兩個一維的向量,請你實現乙個迭代器,交替返回它們中間的元素。

示例:

輸入:v1 = [1,2]

v2 = [3,4,5,6]

輸出: [1,3,2,4,5,6]

解析: 通過連續呼叫 next 函式直到 hasnext 函式返回 false,

next 函式返回值的次序應依次為: [1,3,2,4,5,6]。

拓展:假如給你 k 個一維向量呢?你的**在這種情況下的擴充套件性又會如何呢?

拓展宣告:

「鋸齒」 順序對於 k > 2 的情況定義可能會有些歧義。所以,假如你覺得 「鋸齒」 這個表述不妥,也可以認為這是一種 「迴圈」。例如:

輸入:[1,2,3]

[4,5,6,7]

[8,9]

輸出: [1,4,8,2,5,9,3,6,7].

方法1:

主要思路:

(1)直接擴充套件到 k 個陣列的鋸齒形迭代器;

class

zigzagiterator

}// row=0;

col=0;

}int

next()

--nums;

//返回最後乙個結點

if(nums==0)

//當前要返回的有效的元素

int res=vecs[row]

[col]

;//將位置調整到下乙個有效元素的位置

//調整行

++row;

if(row==vecs.

size()

)//調整可能的列

while

(rowsize()

&&col>=vecs[row]

.size()

)}return res;

}bool

hasnext()

};/** * your zigzagiterator object will be instantiated and called as such:

* zigzagiterator i(v1, v2);

* while (i.hasnext()) cout << i.next();

*/

迭代器 反向迭代器

c primer 中文版第四版 第273頁 9.3.2 begin和end成員 begin和end操作產生指向容器內第乙個元素和最後乙個元素的下乙個位置的迭代器,如下所示。這兩個迭代器通常用於標記包含容器中所有元素的迭代範圍。c.begin 返回乙個迭代器,它指向容器c的第乙個元素 c.end 返回...

迭代器 可迭代物件 迭代器物件

今天的學習內容有 迭代器 可迭代物件 迭代器物件 for迴圈內部原理 生成器和生成器表示式 面向過程程式設計 迭代就是指更新換代的過程,要重複進行,而且每次的迭代都必須基於上一次的結果。我們使用for迴圈的時候就是把元素從容器裡乙個個取出來,這種過程其實就是迭代。迭代器 迭代取值的工具。迭代器的作用...

C STL迭代器 插入迭代器

include stdafx.h include include include include include 演算法庫對所有在容器上的操作有個承諾 決不修改容器的大小 不插入 不刪除 有了插入迭代器,既使得演算法庫可以通過迭代器對容器插入新的元素,又不違反這一承諾,即保持了設計上的一致性。usi...