迭代器是什么意思
答案:1 悬赏:50 手机版
解决时间 2021-03-11 12:22
- 提问者网友:原来太熟悉了会陌生
- 2021-03-11 00:40
迭代器是什么意思
最佳答案
- 五星知识达人网友:旧脸谱
- 2021-03-11 01:30
问题一:c++中迭代器是什么意思? 1、迭代器是一种对象,它能够用来遍历STL容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上象迭代器的东西都可以叫做迭代器。然而迭代器有很多不同的能力,它可以把抽象容器和通用算法有机的统一起来。
2、迭代器提供一些基本操作符:*、++、==、!=、=。这些操作和C/C++“操作array元素”时的指针接口一致。不同之处在于,迭代器是个所谓的smart pointers,具有遍历复杂数据结构的能力。其下层运行机制取决于其所遍历的数据结构。因此,每一种容器型别都必须提供自己的迭代器。事实上每一种容器都将其迭代器以嵌套的方式定义于内部。因此各种迭代器的接口相同,型别却不同。这直接导出了泛型程序设计的概念:所有操作行为都使用相同接口,虽然它们的型别不同。
3、例程:
#include using namespace std;class _iterator{private:char* p;public:_iterator(char* str):p(str){}char*& operator++(){p+=1; //跟 p++同价;return p;}};int main(){char* p=This is C++ program;_iterator it(p);cout问题二:c++中迭代器是什么意思? C++中迭代器
C++中的容器
标准序列容器:vector、string、deque、list
标准关联容器:set、multiset、map、multimap
迭代器的分类
根据迭代器所支持的操作,可以把迭代器分为5类。
1、输入迭代器:是只读迭代器,在每个被遍历的位置上只能读取一次。
2、输出迭代器:是只写迭代器,在每个被遍历的位置上只能被写一次。
3、前向迭代器:兼具输入和输出迭代器的能力,但是它可以对同一个位置重复进行读和写。但它不支持operator--,所以只能向前移动。
4、双向迭代器:很像前向迭代器,只是它向后移动和向前移动同样容易。
5、随机访问迭代器:有双向迭代器的所有功能。而且,它还提供了“迭代器算术”,即在一步内可以向前或向后跳跃任意位置。
C++容器中提供的迭代器
1、输入和输出迭代器的模型分别是建立在针对输入和输出流(例如文件)的读写操作基础上的。所以不难理解,输入和输出迭代器最常见的表现形式是 istream_iterator和ostream_iterator。
2、所有的标准STL容器都支持比前向迭代器功能更强大的迭代器。(哈希容器的一种、单向链表容器例外,它们提供前向迭代器)
3、标准关联容器都提供了双向迭代器。list也是如此。
4、vector、string、deque都提供了随机访问迭代器。指向数组的内部指针对于数组来说也是随机访问迭代器。
istream_iterator和ostream_iterator使用示例
复制代码
// istream_iterator example
#include
#include
using namespace std;
int main () {
double value1, value2;
cout eos; // end-of-stream iterator
istream_iterator iit (cin); // stdin iterator
if (iit!=eos) value1=*iit;
iit++;
if (iit!=eos) value2=*iit;
cout
#include
#include
using namespace std;
int main () {
vector myvector;
for (int i=1; i>问题三:Java中什么叫迭代器? 迭代器(Iterator)
迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。
Java中的Iterator功能比较简单,并且只能单向移动:
(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。
(2) 使用next()获得序列中的下一个元素。
(3) 使用hasNext()检查序列中是否还有元素。
(4) 使用remove()将迭代器新返回的元素删除。
Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。
迭代器应用:
list l = new ArrayList();
l.add(aa);
l.add(bb);
l.add(cc);
for (Iterator iter = l.iterator(); iter.hasNext();) {
String str = (String)iter.next();
System.out.println(str);
}
问题四:java中的迭代器是什么东西,有什么作用,求通俗易懂解释, 您好,提问者: Java中的迭代器就是遍历容器的,比如,我先写个数组。
//String[] 遍历 String[] arr = new String[]{aaa,bbb,ccc}; for(int i = 0; i list = new ArrayList(); for(Iterator it = list.iterator(); it.hasNext();){ String name = list.next(); System.out.println(name); } //其实ArrayList的底层就是一个数组,也可以使用循环来做 for(int i = 0; i 问题五:迭代器的解释 迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上像迭代器的东西都可以叫做迭代器。然而迭代器有很多不同的能力,它可以把抽象容器和通用算法有机的统一起来。迭代器提供一些基本操作符:*、++、==、!=、=。这些操作和C/C++“操作array元素”时的指针接口一致。不同之处在于,迭代器是个所谓的复杂的指针,具有遍历复杂数据结构的能力。其下层运行机制取决于其所遍历的数据结构。因此,每一种容器型都必须提供自己的迭代器。事实上每一种容器都将其迭代器以嵌套的方式定义于内部。因此各种迭代器的接口相同,型号却不同。这直接导出了泛型程序设计的概念:所有操作行为都使用相同接口,虽然它们的型别不同。 1.迭代器是可以返回相同类型值的有序序列的一段代码;2.迭代器可用作方法、运算符或get访问器的代码体;3.迭代器代码使用yieldreturn语句依次返回每个元素,yield break将终止迭代;4.可以在类中实现多个迭代器,每个迭代器都必须像任何类成员一样有惟一的名称,并且可以在foreach语句中被客户端,代码调用如下所示:foreach(int x in SimpleClass.Iterator2){};5.迭代器的返回类型必须为IEnumerable和IEnumerator中的任意一种;6.迭代器是产生值的有序序列的一个语句块,不同于有一个 或多个yield语句存在的常规语句块;7.迭代器不是一种成员,它只是实现函数成员的方式,理解这一点是很重要的,一个通过迭代器实现的成员,可以被其他可能或不可能通过迭代器实现的成员覆盖和重载;8.迭代器块在C#语法中不是独特的元素,它们在几个方面受到限制,并且主要作用在函数成员声明的语义上,它们在语法上只是语句块而已;9.yield关键字用于指定返回的值。到达yieldreturn语句时,会保存当前位置。下次调用迭代器时将从此位置重新开始执行。 迭代器对集合类特别有用,它提供一种简单的方法来迭代不常用的数据结构(如二进制树)。 迭代器是一种检查容器内元素并遍历元素的数据类型。问题六:请问程序里面的迭代器主要作用是什么 你好,很高兴能为您解答。迭代器在其实就是指针,读取集合或者数组中的一个值,读完以后又指向下一条数据。迭代器是很好用的一个东西,以java为例,在遍历list或者map等对象的时候,效率比较高,而且能实现一些for循环不能实现的功能。例如remove。希望我的回答对你有所帮助问题七:java中什么叫迭代,什么叫迭代器 迭代
通俗点说 叫 一个个数过去,
实现这样一个个数过去功能的东西,叫迭代器。
java迭代器 较多使用在容器中,如数组链表 ArrayList(反正就是能装东西的玩意儿)
举个例子:
//我们先往链表中装东西
Ar顶ayList a = new ArrayList();
a.add(东西1);
a.add(东西2);
//从链表中取东西怎么办呢,自然就用到了迭代器
//用法是这样的
Iterator iter = a.iterator() ; //iter迭代器对象,可以用它来数了
while(iter.hasNext()){ //先往左数,如果有东西就执行{}里的语句
String m = (String)iter.next(); //数到什么就拿出来 赋值给m
System.out.println(m); //拿出m用一下,即打印
}问题八:X什么是迭代器? 容器就是数据结构的泛指,迭代器就是指针的泛指,可以指向元素。容器相当于一个储藏柜,里面装的许多不同的物品就像是储存的元素,比如面包、啤酒、苹果、现金。要取得各个物体就得用与各个物体向匹配的工具,如取出面包要用盘子、取出啤酒要用杯子、取出苹果要用篮子、取出现金要用钱包。迭代器的作用就相当于取出物品的工具的抽象,通过迭代器泛指现实生活中从贮藏室中取出物体的工具。C++迭代器是一种检查容器内元素并遍历元素的数据类型。1 Iterator definitionsIn C++, an iterator is any object that, pointing to some element in a range of elements (such as an array or a container), has the ability to iterate through the elements of that range using a set of operators (at least, the increment (++) and dereference (*) operators). The most obvious form of iterator is a pointer: A pointer can point to elements in an array, and can iterate through them using the increment operator (++). But other forms of iterators exist. For example, each container type (such as a vector) has a specific iterator type designed to iterate through its elements in an efficient way.C++迭代器Interator就是一个指向某种STL对象的指针。通过该指针可以简单方便地遍历所有元素。 C++中的iterator为STL中的重要概念。iterator的概念源自于对遍历一个线性容器工具的抽象,即如何你能访问这个容器的某个元素。对于最简单的数组,当然可以用数组的索引值,因为数组是连续存放在内存中的;但对于链表,就必须用指针。除此之外,还有还有很多种数据结构需要提供一个方便的工具来访问其中的元素,方法有ID,关键字等等。为了统一所有的容器的这种工具的使用,一般提供一整套容器的开发者就会用一种方式来表示各种容器的访问工具。例如C++ STL就是使用iterator。MFC自己的容器使用position。C#和java也有自己的方法,但方法是不变的。 iterator的用法可以被统一,但不同的底层容器实现其iterator的原理是不一样的。例如iterator++你可以理解为移动到容器的下一个元素,如果底层如果是数组,把索引值加一就行;如果底层是链表,就得执行类似于m_pCurrent = m_pCurrent-> pNext;的操作。因此每种容器都有自己的iterator实现方法。 C++ STL iterator的常用方法有: iterator++ 移到下个元素 iterator-- 移到上个元素 *iterator 访问iterator所指元素的值 == != iterator之间的比较,例如判断哪个元素在前 iterator1 + iterator2 iterat......余下全文>>问题九:Iterator迭代是什么意思 迭代器(Iterator)模式,又叫做游标(罚ursor)模式。GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。 从定义可见,迭代器模式是为容器而生。很明显,对容器对象的访问必然涉及到遍历算法。你可以一股脑的将遍历方法塞到容器对象中去;或者根本不去提供什么遍历算法,让使用容器的人自己去实现去吧。
迭代器模式(Iterator pattern)
迭代这个名词对于熟悉Java的人来说绝对不陌生。
我们常常使用JDK提供的迭代接口进行java collection的遍历:
Iterator it = list.iterator();
while(it.hasNext())
{
//using “it.next();”do some businesss logic
}
而这就是关于迭代器模式应用很好的例子。
2、迭代器提供一些基本操作符:*、++、==、!=、=。这些操作和C/C++“操作array元素”时的指针接口一致。不同之处在于,迭代器是个所谓的smart pointers,具有遍历复杂数据结构的能力。其下层运行机制取决于其所遍历的数据结构。因此,每一种容器型别都必须提供自己的迭代器。事实上每一种容器都将其迭代器以嵌套的方式定义于内部。因此各种迭代器的接口相同,型别却不同。这直接导出了泛型程序设计的概念:所有操作行为都使用相同接口,虽然它们的型别不同。
3、例程:
#include using namespace std;class _iterator{private:char* p;public:_iterator(char* str):p(str){}char*& operator++(){p+=1; //跟 p++同价;return p;}};int main(){char* p=This is C++ program;_iterator it(p);cout问题二:c++中迭代器是什么意思? C++中迭代器
C++中的容器
标准序列容器:vector、string、deque、list
标准关联容器:set、multiset、map、multimap
迭代器的分类
根据迭代器所支持的操作,可以把迭代器分为5类。
1、输入迭代器:是只读迭代器,在每个被遍历的位置上只能读取一次。
2、输出迭代器:是只写迭代器,在每个被遍历的位置上只能被写一次。
3、前向迭代器:兼具输入和输出迭代器的能力,但是它可以对同一个位置重复进行读和写。但它不支持operator--,所以只能向前移动。
4、双向迭代器:很像前向迭代器,只是它向后移动和向前移动同样容易。
5、随机访问迭代器:有双向迭代器的所有功能。而且,它还提供了“迭代器算术”,即在一步内可以向前或向后跳跃任意位置。
C++容器中提供的迭代器
1、输入和输出迭代器的模型分别是建立在针对输入和输出流(例如文件)的读写操作基础上的。所以不难理解,输入和输出迭代器最常见的表现形式是 istream_iterator和ostream_iterator。
2、所有的标准STL容器都支持比前向迭代器功能更强大的迭代器。(哈希容器的一种、单向链表容器例外,它们提供前向迭代器)
3、标准关联容器都提供了双向迭代器。list也是如此。
4、vector、string、deque都提供了随机访问迭代器。指向数组的内部指针对于数组来说也是随机访问迭代器。
istream_iterator和ostream_iterator使用示例
复制代码
// istream_iterator example
#include
#include
using namespace std;
int main () {
double value1, value2;
cout eos; // end-of-stream iterator
istream_iterator iit (cin); // stdin iterator
if (iit!=eos) value1=*iit;
iit++;
if (iit!=eos) value2=*iit;
cout
#include
#include
using namespace std;
int main () {
vector myvector;
for (int i=1; i>问题三:Java中什么叫迭代器? 迭代器(Iterator)
迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。
Java中的Iterator功能比较简单,并且只能单向移动:
(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。
(2) 使用next()获得序列中的下一个元素。
(3) 使用hasNext()检查序列中是否还有元素。
(4) 使用remove()将迭代器新返回的元素删除。
Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。
迭代器应用:
list l = new ArrayList();
l.add(aa);
l.add(bb);
l.add(cc);
for (Iterator iter = l.iterator(); iter.hasNext();) {
String str = (String)iter.next();
System.out.println(str);
}
问题四:java中的迭代器是什么东西,有什么作用,求通俗易懂解释, 您好,提问者: Java中的迭代器就是遍历容器的,比如,我先写个数组。
//String[] 遍历 String[] arr = new String[]{aaa,bbb,ccc}; for(int i = 0; i list = new ArrayList(); for(Iterator it = list.iterator(); it.hasNext();){ String name = list.next(); System.out.println(name); } //其实ArrayList的底层就是一个数组,也可以使用循环来做 for(int i = 0; i 问题五:迭代器的解释 迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上像迭代器的东西都可以叫做迭代器。然而迭代器有很多不同的能力,它可以把抽象容器和通用算法有机的统一起来。迭代器提供一些基本操作符:*、++、==、!=、=。这些操作和C/C++“操作array元素”时的指针接口一致。不同之处在于,迭代器是个所谓的复杂的指针,具有遍历复杂数据结构的能力。其下层运行机制取决于其所遍历的数据结构。因此,每一种容器型都必须提供自己的迭代器。事实上每一种容器都将其迭代器以嵌套的方式定义于内部。因此各种迭代器的接口相同,型号却不同。这直接导出了泛型程序设计的概念:所有操作行为都使用相同接口,虽然它们的型别不同。 1.迭代器是可以返回相同类型值的有序序列的一段代码;2.迭代器可用作方法、运算符或get访问器的代码体;3.迭代器代码使用yieldreturn语句依次返回每个元素,yield break将终止迭代;4.可以在类中实现多个迭代器,每个迭代器都必须像任何类成员一样有惟一的名称,并且可以在foreach语句中被客户端,代码调用如下所示:foreach(int x in SimpleClass.Iterator2){};5.迭代器的返回类型必须为IEnumerable和IEnumerator中的任意一种;6.迭代器是产生值的有序序列的一个语句块,不同于有一个 或多个yield语句存在的常规语句块;7.迭代器不是一种成员,它只是实现函数成员的方式,理解这一点是很重要的,一个通过迭代器实现的成员,可以被其他可能或不可能通过迭代器实现的成员覆盖和重载;8.迭代器块在C#语法中不是独特的元素,它们在几个方面受到限制,并且主要作用在函数成员声明的语义上,它们在语法上只是语句块而已;9.yield关键字用于指定返回的值。到达yieldreturn语句时,会保存当前位置。下次调用迭代器时将从此位置重新开始执行。 迭代器对集合类特别有用,它提供一种简单的方法来迭代不常用的数据结构(如二进制树)。 迭代器是一种检查容器内元素并遍历元素的数据类型。问题六:请问程序里面的迭代器主要作用是什么 你好,很高兴能为您解答。迭代器在其实就是指针,读取集合或者数组中的一个值,读完以后又指向下一条数据。迭代器是很好用的一个东西,以java为例,在遍历list或者map等对象的时候,效率比较高,而且能实现一些for循环不能实现的功能。例如remove。希望我的回答对你有所帮助问题七:java中什么叫迭代,什么叫迭代器 迭代
通俗点说 叫 一个个数过去,
实现这样一个个数过去功能的东西,叫迭代器。
java迭代器 较多使用在容器中,如数组链表 ArrayList(反正就是能装东西的玩意儿)
举个例子:
//我们先往链表中装东西
Ar顶ayList a = new ArrayList();
a.add(东西1);
a.add(东西2);
//从链表中取东西怎么办呢,自然就用到了迭代器
//用法是这样的
Iterator iter = a.iterator() ; //iter迭代器对象,可以用它来数了
while(iter.hasNext()){ //先往左数,如果有东西就执行{}里的语句
String m = (String)iter.next(); //数到什么就拿出来 赋值给m
System.out.println(m); //拿出m用一下,即打印
}问题八:X什么是迭代器? 容器就是数据结构的泛指,迭代器就是指针的泛指,可以指向元素。容器相当于一个储藏柜,里面装的许多不同的物品就像是储存的元素,比如面包、啤酒、苹果、现金。要取得各个物体就得用与各个物体向匹配的工具,如取出面包要用盘子、取出啤酒要用杯子、取出苹果要用篮子、取出现金要用钱包。迭代器的作用就相当于取出物品的工具的抽象,通过迭代器泛指现实生活中从贮藏室中取出物体的工具。C++迭代器是一种检查容器内元素并遍历元素的数据类型。1 Iterator definitionsIn C++, an iterator is any object that, pointing to some element in a range of elements (such as an array or a container), has the ability to iterate through the elements of that range using a set of operators (at least, the increment (++) and dereference (*) operators). The most obvious form of iterator is a pointer: A pointer can point to elements in an array, and can iterate through them using the increment operator (++). But other forms of iterators exist. For example, each container type (such as a vector) has a specific iterator type designed to iterate through its elements in an efficient way.C++迭代器Interator就是一个指向某种STL对象的指针。通过该指针可以简单方便地遍历所有元素。 C++中的iterator为STL中的重要概念。iterator的概念源自于对遍历一个线性容器工具的抽象,即如何你能访问这个容器的某个元素。对于最简单的数组,当然可以用数组的索引值,因为数组是连续存放在内存中的;但对于链表,就必须用指针。除此之外,还有还有很多种数据结构需要提供一个方便的工具来访问其中的元素,方法有ID,关键字等等。为了统一所有的容器的这种工具的使用,一般提供一整套容器的开发者就会用一种方式来表示各种容器的访问工具。例如C++ STL就是使用iterator。MFC自己的容器使用position。C#和java也有自己的方法,但方法是不变的。 iterator的用法可以被统一,但不同的底层容器实现其iterator的原理是不一样的。例如iterator++你可以理解为移动到容器的下一个元素,如果底层如果是数组,把索引值加一就行;如果底层是链表,就得执行类似于m_pCurrent = m_pCurrent-> pNext;的操作。因此每种容器都有自己的iterator实现方法。 C++ STL iterator的常用方法有: iterator++ 移到下个元素 iterator-- 移到上个元素 *iterator 访问iterator所指元素的值 == != iterator之间的比较,例如判断哪个元素在前 iterator1 + iterator2 iterat......余下全文>>问题九:Iterator迭代是什么意思 迭代器(Iterator)模式,又叫做游标(罚ursor)模式。GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。 从定义可见,迭代器模式是为容器而生。很明显,对容器对象的访问必然涉及到遍历算法。你可以一股脑的将遍历方法塞到容器对象中去;或者根本不去提供什么遍历算法,让使用容器的人自己去实现去吧。
迭代器模式(Iterator pattern)
迭代这个名词对于熟悉Java的人来说绝对不陌生。
我们常常使用JDK提供的迭代接口进行java collection的遍历:
Iterator it = list.iterator();
while(it.hasNext())
{
//using “it.next();”do some businesss logic
}
而这就是关于迭代器模式应用很好的例子。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯