标签:#编程中的迭代

共 10 篇文章

迭代器模式

在物件導向程式設計裡,迭代器模式(),是一種最簡單也最常見的設計模式。它可以讓使用者透過特定的介面巡訪容器中的每一個元素而不用了解底層的實作。 有些物件導向語言像Java、C#、Ruby、Python、Delphi都已將迭代器的特性內建語言當中,完美的跟語言整合,可稱之為隱式迭代器。 结构 在上面的UML类图中,Client类提及Aggregate接口,用它来创建一个Iterator对象(createIterator()),接着提及It…

迭代器

迭代器(),是使用户可在容器物件(,例如鏈表或陣列)上遍訪的物件,設計人員使用此介面無需關心容器物件的内存分配的实现细节。其行为很像数据库技术中的游標(),迭代器最早出现在1974年设计的CLU编程语言中。 在各種語言實作迭代器的方式皆不盡同,有些物件導向語言像Java、C#、Ruby、Python、Delphi都已將迭代器的特性內建語言當中,完美的跟語言整合,可稱之為隱式迭代器。但像是C++語言本身就沒有迭代器的特色,但STL仍利用模…

無窮迴圈

無窮迴圈()又称-{zh-cn:无穷回圈;zh-tw:死循環}-、无限循环(infinite loop),是指程式的控制流程一直在重複執行某一段程式碼,無法結束的情形,其原因可能是因為程式中的迴圈沒有設結束迴圈條件,或是結束迴圈的條件不可能成立等。在協作式多工(cooperative multitasking)的作業系統中,無窮迴圈會使系統沒有反應,若是先占式多工(preemptive multitasking)的系統中,無窮迴圈會用掉…

Map (高阶函数)

在很多编程语言中,映射(map)是一个高阶函数的名字,它将一个应用到一个函子比如列表的每个元素,返回按相同次序的一个列表。映射的概念不受限于列表:它可工作在顺序的容器,类似树的容器,甚至是抽象容器比如future与promise。 映射在作为泛函形式考虑时,经常叫做“应用于全部”。在支持头等函数和柯里化的语言中,map可以在一个函数上,将这个只工作在一个值之上函数,提升为工作在整个容器上的逐个元素上的函数。 定义 map作为Haskel…

Fold (高阶函数)

在函数式编程中,折叠(fold),也称为归约(reduce)、积累(accumulate)、聚集(aggregate)、压缩(compress)或注入(inject),指称一组高阶函数,它们分析递归数据结构并通过使用给定组合运算,将递归的处理它的构成部件、建造一个返回值的结果重组起来。典型的,要向折叠提供一个组合函数,一个数据结构的顶端,和可能的在特定条件下使用的某些缺省值。折叠接着以系统性方式使用这个函数,进行组合这个数据结构的层级中…

迭代

迭代(),亦作-{zh-hans:疊;zh-hant:迭}-代,是重复反馈过程的活动,其目的通常是为了接近並且到达所需的目标或结果。每一次对过程的重复被称为一次“迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。 在数学中 的迭代。将对角用直线段连起来得到一个五角星,后者中心围成了一个倒过来的小五边形。迭代地执行这一过程会产生一系列嵌套的五边形和五角星。]] 数学中的迭代可以指函数迭代的过程,即反复地运用同一函数计算,前一次…

生成器 (计算机编程)

生成器(Generator),是计算机科学中特殊的子程序。实际上,所有生成器都是迭代器。生成器非常类似于返回数组的函数,都是具有参数、可被调用、产生一系列的值。但是生成器不是构造出数组包含所有的值并一次性返回,而是每次产生一个值,因此生成器看起来像函数,但行为像迭代器。 生成器可以用更有表达力的控制流结构实现,如协程或头等續體。生成器,也被称作半协程(semicoroutine),是特殊的、能力更弱的协程,总是在传回一个值时把控制交还给…

树的遍历

在计算机科学裡,树的遍历(也称为-{zh-hant:樹的遍歷;zh-hans:树的走访;}-或树的搜索)是一种圖的遍歷,指的是按照某种规则,不重复地访问某种樹的所有节点的过程。具体的访问操作可能是检查节点的值、更新节点的值等。不同的遍历方式,其访问节点的顺序是不一样的。以下虽然描述的是二叉树的遍历算法,但它们也适用于其他树形结构。 遍历的种类 与那些基本上都有标准遍历方式(通常是按线性顺序)的线性数据结构(如链表、一维数组)所不同的是,…

For迴圈

for迴圈()在電腦科學是一種程式語言的迭代陳述,能夠讓程式碼反覆的執行。 它跟其他的迴圈,如while迴圈,最大的不同,是它擁有一個迴圈計數器,或是迴圈變數。這使得for迴圈能夠知道在迭代過程中的執行順序。 for 迴圈的種類 傳統的 for 迴圈 for-loops C語言中傳統的for-loop包含三個部分:初始化、條件、遞增,這三個部分都是可有可無的。 :以Java為例: for (INITIALIZATION; CONDITI…

指標 (資料庫)

資料指標(Data Cursor)或稱游標,是在資料庫引擎 (Database Engine)中,讓開發人員或資料庫管理員可以遍歷、瀏覽檢索結果的資料列(稱為資料查詢結果集, Result set),是主要用於在結果集中移動到某一資料列(row)的控制結構。游標可以被看作是指向一組列中,代表某一列的指針。游標一次只能引用一列,但可以根據需要移動到結果集的其他列。 游標有助於隨檢索之後的資料處理與遍歷相結合,如添加和刪除記錄。它能遍歷資料…