阅读下列函数说明和C++代码,回答问题[说明] 对多个元素的聚合进行遍历访问时,需要依次推移元素,
阅读下列函数说明和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();
}
};
template
class 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;
}
(1)Object virtual IteratorObject> &bookShelf it->hasNext()
AA、B、C、D、E、F六种短周期元素,原子序数依次增大.A、E同主族,且E元素原子的核外电子数是 化学 2020-04-08 …
依托孕烯是一种激素类药物,结构如图所示.下列有关依托孕烯的说法正确的是()A.依托孕烯的分子式为C 化学 2020-07-15 …
依托孕烯是一种激素类药物,结构如图所示。下列有关依托孕烯的说法正确的是[]A.依托孕烯的分子式为C 化学 2020-07-15 …
在元素周期表中,某稀有气体元素原子的最外层电子构型为4s24p6,与其同周期的A、B、C、D四种元 化学 2020-07-22 …
单质硫是否能溶于二硫化碳今有A、B、C、D四种短周期元素,他们的核电荷数依次增大,A与C、B与D分别 化学 2020-10-30 …
在元素周期表中,一稀有气体元素原子的最外层电子构型为4s24p6,与其同周期的A、B、C、D四种元素 化学 2020-11-01 …
有序顺序表合并有顺序表A和B.其元素均按从小到大的升序排列,编写一个算法将它们合并成一个新的顺序表C 数学 2020-11-28 …
A、B、C、D是四种短周期元素,它们的原子序数依次增大,其中A、C与B、D分别是同主族元素,又知B、 化学 2020-12-05 …
如图是元素周期表中的一格,依据图中的信息得到的下列认识错误的是()A.该元素原子的质子数为14B.该 化学 2020-12-10 …
元素周期表是学习和研究化学的重要工具.按要求回答下列问题:A、B、C、D、E是短周期元素,其原子序数 化学 2021-01-12 …