迭代器(c++)

/*#include <iostream>
#include <vector>
using  namespace std;
int main()
{
 vector<int> vecInt;
 vecInt. push_back(1);
 vecInt. push_back(2);
 vecInt.push_back(3);
 int size = vecInt.size();

vector<int> vecInt2(10);

vector<int> vecInt3(5, 28);

vector<int> vecInt4(vecInt3);
 //【,)
 /ector<int> vecInt5(vecInt.begin(), vecInt.begin() + 1);
 vector<int> vecInt5(vecInt.begin(), vecInt.begin() +2);
 vecInt.resize(10);//重新扩充10个数据长度。

vector.resize(10);// 重新分配10个长度
 return 0;

}*/
//迭代器的几种用法:
#include <iostream>
#include <windows.h>
#include <algorithm>//sort()
#include <vector>
using namespace std;
void printfValue(int& a)
{
 cout << a << endl;
}
bool mySort(int a,int b)
{
 return a > b;//从大到小排序
}
int main()
{  
 vector<int> vecInt3;//就是这样定义容器的。
 vector<int>::iterator itInt;//就是这样定义迭代器的
 itInt = vecInt3.begin(); //第一个元素
 itInt = vecInt3.end();   //从逻辑认为是最后一个元素的下一个
 vecInt3.push_back(1);
 vecInt3.push_back(2);
 vecInt3.push_back(3);
 vecInt3.push_back(4);

//int num = count(vecInt3.begin(),vecInt3.end(),28);//在vecInt3.begin()到vecInt3.end()范围找28.
 //cout << num<<endl;
 vector<int>::iterator itFind = find(vecInt3.begin(),vecInt3.end(),2);//功能同上,找不到报错
 int a = *itFind;
 cout << a <<endl<<"**************************"<< endl;

sort(vecInt3.begin(), vecInt3.end(), mySort);//排序函数 (全局的)

for_each(vecInt3.begin(), vecInt3.end(), printfValue);//在这个区间的数输出
 for (vector<int>::iterator it = vecInt3.begin(); it != vecInt3.end(); it++)// 利用迭代器输出1到4
 {
  cout << *it << endl;//迭代器本身是一个指针
 }
 for (int i = 0; i < vecInt3.size(); i++)// 利用下标输出1到4
 {
  cout << vecInt3[i] << endl;
 }

vector<int>::const_iterator constIt;
 constIt = vecInt3.begin();

vector<int>::reverse_iterator rlt;//是一种反向迭代器
 rlt = vecInt3.rend();
 rlt = vecInt3.rbegin();

getchar();// system("pause");
 return 0;

}

时间: 2024-10-09 22:14:08

迭代器(c++)的相关文章

Day4 - 迭代器&amp;生成器、装饰器、Json &amp; pickle 数据序列化、软件目录结构规范

---恢复内容开始--- 本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 需求:列表a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求把列表里的每个值加1 1 a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 2 b = [] 3 for i in a: 4 b.append(i+1) 5 a = b 6 print(a) 普通青

装饰器、生成器、迭代器

装饰器的前奏 装饰器:本质是函数 功能:就是装饰成其他函数  就是为其他函数添加附加功能的 高阶函数+嵌套函数=装饰器 原则:1.不能修改被装饰的函数的源代码 2.不能修改被装饰的函数的调用方式 总结一句话:装饰器对被装饰的函数是完全透明的 实现装饰器的只是储备: 1.函数名即"变量"   将函数体赋值给变量   和内存回收机制一样 2.高阶函数 2.1.把函数名作为实参传递给形参(可返回被修饰函数的地址)(不修改源代码的情况可添加新的功能) 2.2返回值中包含函数地址(不修改函数的调

Vector容器 和 iteration 迭代器

vector容器 vector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值.和string对象一样,标准库负责管理存储元素的相关内存.我们把vector称为容器,是因为它可以包含其他对象.一个容器中的所有对象都必须是同一种类型的. 使用vector之前,必须包含相应的头文件.#include <vector> using std::vector; vector是一个类模板(class template).模板允许程序员编写单个类或函数定义,这个类和函数定义可用于不同的数据类型上.

Python高级特性:迭代器和生成器 -转

在Python中,很多对象都是可以通过for语句来直接遍历的,例如list.string.dict等等,这些对象都可以被称为可迭代对象.至于说哪些对象是可以被迭代访问的,就要了解一下迭代器相关的知识了. 迭代器 迭代器对象要求支持迭代器协议的对象,在Python中,支持迭代器协议就是实现对象的__iter__()和next()方法.其中__iter__()方法返回迭代器对象本身:next()方法返回容器的下一个元素,在结尾时引发StopIteration异常. __iter__()和next()

python-学习笔记之-Day5 双层装饰器 字符串格式化 python模块 递归 生成器 迭代器 序列化

1.双层装饰器 #!/usr/bin/env python # -*- coding: utf-8 -*- # author:zml LOGIN_INFO = False IS_ADMIN = False   def check_log(func): def inner(): res = func() if LOGIN_INFO: print('验证成功!') return res else: print('验证失败!') return inner   def check_admin(func)

Python基础教程(第九章 魔法方法、属性和迭代器)

本文内容全部出自<Python基础教程>第二版,在此分享自己的学习之路. ______欢迎转载:http://www.cnblogs.com/Marlowes/p/5437223.html______ Created on Marlowes 在Python中,有的名称会在前面和后面都加上两个下划线,这种写法很特别.前面几章中已经出现过一些这样的名称(如__future__),这种拼写表示名字有特殊含义,所以绝不要在自己的程序中使用这样的名字.在Python中,由这些名字组成的集合所包含的方法称

迭代器

创建迭代器最常用的方法是对IEnumerator接口实现GetEnumerator方法. public class Family : System.Collections.IEnumerable { string[] myFamily = {“父亲”,”母亲”,”弟弟”,”妹妹”}; public System.Collections.IEnumerator GetEnumerator() { for(int i=0;i<myFamily.Length;i++) { yield return m

LeetCode OJ:Peeking Iterator(peeking 迭代器)

Given an Iterator class interface with methods: next() and hasNext(), design and implement a PeekingIterator that support the peek() operation -- it essentially peek() at the element that will be returned by the next call to next(). Here is an exampl

JavaScript设计模式 - 迭代器模式

迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示. 迭代器模式可以把迭代的过程从业务逻辑中分离出来,在使用迭代器模式之后,即使不关心对象的内部构造,也可以按顺序访问其中的每个元素 许多浏览器都支持 Javascript 的 Array.prototype.forEach 迭代器可以分为 内部迭代器 和 外部迭代器 一.jQuery 中的迭代器 1 $.each( [1,2,3,4], function (i, n) { 2 console.log( "当

Java基础知识强化之集合框架笔记11:Collection集合之迭代器的原理及源码解析

1. 迭代器为什么不定义成一个类,而是定义为一个接口 ?  答:假设迭代器定义的是一个类,这样我们就可以创建该类的对象,调用该类的方法来实现集合的遍历.但是呢? 我们想想,Java中提供了很多的集合类,而这些集合类的数据结构是不同的,所以,存储的方式和遍历的方式应该是不同的.进而它们的遍历方式也应该不是一样的,最终,就没有定义迭代器类.        而无论你是哪种集合,你都应该具备获取元素的操作,而且,最好在辅助于判断功能,这样,在获取前,先判断.这样的话就不容易出错.也就是说,判断功能和获取