22、能够使用next函数获取下一个元素值的对象都是迭代器。
22、能够使用next函数获取下一个元素值的对象都是迭代器。
参考答案和解析
错误
相关考题:
下列的说法中,不正确的是()A.迭代器协议是指:对象必须提供一个next方法B.list、dict、str虽然是Iterable,却不是IteratorC.生成器与迭代器对象的区别在于:它仅提供next()方法D.生成器实现了迭代器协议,但生成器是边计算边生成达到节省内存及计算资源
阅读以下说明和C语言函数,将应填入(n)。【说明】已知包含头结点(不存储元素)的单链表的元素已经按照非递减方式排序,函数 compress(NODE*head)的功能是去掉其中重复的元素,使得链表中的元素互不相同。处理过程中,当元素重复出现时,保留元素第一次出现所在的结点。图2-1(a)、(b)是经函数compress()处理前后的链表结构示例图。链表的结点类型定义如下:typedef struct Node{int data;struct Node *next;}NODE;【C语言函数】void compress(NODE *head){ NODE *ptr,*q;ptr= (1); /*取得第一个元素结点的指针*/while( (2) ptr->next) {q=ptr->next;while(q(3)) { /*处理重复元素*/(4)q->next;free(q);q=ptr->next;}(5) ptr->next;}/*end of while */}/*end of compress*/
阅读下列函数说明和C++代码,回答问题[说明]对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Book)放到书架(BookShelf)上并依次输出书名。这样就要涉及到遍历整个书架的过程。使用迭代器Iterator实现。图5-1显示了各个类间的关系。以下是C++语言实现,能够正确编译通过。[图5-1][C++代码]template (1) class Iterator{public:virtual bool hasNext() = 0;(2) Object* next() = 0;};class Book{//省略具体方法和属性};class BookShelf{private:vector books;public:BookShelf(){}Book* getBookAt(int index){return booksindex;}int getLength(){return books. size();}};templateclass BookshelfIterator : public (3) {private:BookShelf * bookShelf;int index;public:BookshelfIterator(BookShelf *bookShelf){this-bookShelf = bookShelf;index = 0;}bool hasNext(){//判断是否还有下一个元素if(index bookShelf-getLength()){return true;}else{return false;}}Objeot* next(){//取得下一个元素return bookShelf-getBookAt(index++);}};int main(){BookShelf bookShelf;//将书籍上架,省略代码Book *book;Iterator *it = new BookShelfIterator( (4) );while( (5) ){//遍历书架,输出书名book=(Book*)it-next();/*访问元素*/}return 0;}
[说明]已知包含头节点(不存储元素)的单链表的元素已经按照非递减方式排序,函数compress(NODE *head)的功能是去掉其中重复的元素,使得链表中的元素互不相同。处理过程中,当元素重复出现时,保留元素第一次出现所在的节点。图8-29(a)、(b)是经函数compress( )处理前后的链表结构示例图。链表的节点类型定义如下:typedef struct Node {int data;struct Node *next;}NODE;[C语言函数]void compress(NODE *head){NODE *ptr, *q;ptr= (1) ; /*取得第一个元素节点的指针*/while( (2) ptr->next) {q=ptr ->next;while(q (3) ){/*处理重复元素*/(4) =q ->next;free(q);q=ptr->next;}(5) =ptr->next;} /*end of while*/} /*end of compress*/
试题四(共 15 分)阅读以下说明和 C 语言函数,将应填入 (n) 处的字句写在答题纸的对应栏内。[说明]已知包含头结点(不存储元素)的单链表的元素已经按照非递减方式排序,函数compress(NODE *head)的功能是去掉其中重复的元素,使得链表中的元素互不相同。处理过程中,当元素重复出现时,保留元素第一次出现所在的结点。图4-1(a)、(b)是经函数 compress()处理前后的链表结构示例图。链表的结点类型定义如下:typedef struct Node {int data;struct Node *next;}NODE;[C 语言函数]void compress(NODE *head){ NODE *ptr,*q;ptr = (1) ; /* 取得第一个元素结点的指针 */while ( (2) ptr - next) {q = ptr - next;while(q (3) ) { /* 处理重复元素 */(4) = q - next;free(q);q = ptr - next;}(5) = ptr - next;}/* end of while */}/* end of compress */
下面有关迭代器说法错误的是?()A、迭代器it的两个基本操作是next和hasNextB、调用迭代器next()会返回迭代器的下一个元素,并且更新迭代器的状态C、Scala Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法D、Scala Iterator(迭代器)是一个集合
单选题reduce函数是高阶函数,第一个参数是()A方法B属性C函数D可迭代对象