首页 > 其他分享 > 13.STL迭代器如何实现

13.STL迭代器如何实现

时间:2023-08-02 22:57:53浏览次数:30  
标签:容器 13 迭代 STL 运算符 指针

13.STL迭代器如何实现

1.迭代器是一种抽象的设计理念,通过迭代器可以在不了解容器内部原理的情况下遍历容器,除此之外,STL中迭代器一个最重要的作用就是作为容器与STL算法的粘合剂。

2.迭代器的作用就是提供一个遍历容器内部所有元素的接口,因此迭代器内部必须保存一个与容器相关联的指针,然后重载各种运算操作来遍历,其中最重要的是*运算符与->运算符,以及++、--等可能需要重载的运算符重载。这和C++中的智能指针很像,智能指针也是将一个指针封装,然后通过引用计数或是其他方法完成自动释放内存的功能。

3.最常用的迭代器的相应型别有五种:value type、difference type、pointer、reference、iterator catagoly;

标签:容器,13,迭代,STL,运算符,指针
From: https://www.cnblogs.com/codemagiciant/p/17602023.html

相关文章

  • 17.STL中unordered_map(hash_map)和map的区别,hash_map如何解决冲突以及扩容
    17.STL中unordered_map(hash_map)和map的区别,hash_map如何解决冲突以及扩容1.区别1.1需要引入的头文件不同map:#include<map>unordered_map:#include<unordered_map>1.2内部实现机理不同map:map内部实现了一个红黑树(红黑树是非严格平衡二叉搜索树,而AVL是严格平衡二......
  • 8.STL的两级空间配置器
    8.STL的两级空间配置器为什么有适配器?(1)小块内存带来的内存碎片问题单从分配的角度来看。由于频繁分配、释放小块内存容易在堆中造成外碎片(极端情况下就是堆中空闲的内存总量满足一个请求,但是这些空闲的块都不连续,导致任何一个单独的空闲的块都无法满足这个请求)。(2)小块内存频......
  • 1.什么是STL?
    1.什么是STL?C++STL从广义来讲包括了三类:算法,容器和迭代器。算法包括排序,复制等常用算法,以及不同容器特定的算法。容器就是数据的存放形式,包括顺序容器和关联式容器,顺序式容器就是list,vector等,关联式容器就是set,map等。在C++中,迭代器是一种用于遍历容器中元素的通用机制。它类......
  • 4.迭代器:++it、it++哪个好,为什么
    4.迭代器:++it、it++哪个好,为什么1.前置返回一个引用,后置返回一个对象//++i实现代码为:int&operator++(){*this+=1;return*this;}2.前置不会产生临时对象,后置必须产生临时对象,临时对象会导致效率降低//i++实现代码为:intoperator++(int){ ......
  • 130.hello.c 程序的编译过程
    130.hello.c程序的编译过程以下是一个hello.c程序:#include<stdio.h>intmain(){printf("hello,world\n");return0;}在Unix系统上,由编译器把源文件转换为目标文件。gcc-ohellohello.c这个过程大致如下:![img](D:\BaiduSyncdisk\C++\笔记图片\130.h......
  • [HEOI2013] Segment李超线段树
    RT感觉会模板就差不多了,可用作处理一些线段或直线的问题,转化过来的也可以。比如DP的斜率优化,直线的话只用一个log,线段要两个log。[HEOI2013]Segment模板#include<iostream>usingnamespacestd;constintmod1=39989;constintmod2=1e9;constdoubleesp=1e-9;const......
  • 信奥赛例题——1132,1166,1167,1186
    //1132//#include<iostream>//usingnamespacestd;//intmain(intargc,char**argv){// intN;// cin>>N;// stringS1,S2;// stringx="Rock",y="Scissors",z="Paper";// for(inti=0;i<N;i++){// cin>&g......
  • 7K+游戏本怎么选?惠普暗影精灵9 VS 联想拯救者R7000P 2023:酷睿i5-13500HX多核占优
    一、前言:7K价位热度最高的游戏本Intel/AMD孰强孰弱?Intel、AMD两家之争,无论桌面端还是移动端、游戏本还是轻薄本,都铆足了劲想要超越对方,尤其在笔记本上厮杀更为激烈。最近,快科技收到了两台7K价位的游戏本,分别是搭载酷睿i5-13500HX的惠普暗影精灵9、基于锐龙77840H的拯救者R7000......
  • Python-9-Python迭代器、生成器与装饰器
    9-1迭代器在本章之前的代码,for循环本质上是迭代器的应用。迭代器,可以理解为一个容器,循环的时候,每次从容器中取出一个数据,直到数据取完为止。foriinrange(1,10):print(i,end='')#123456789如何自定义一个迭代器1.以类为例,需要在类中定义两个方法:__iter......
  • 大连人工智能计算平台——华为昇腾AI平台——高性能计算HPC的pytorch环境的软件升级—
       aarch64架构CPU下Ubuntu系统环境源码编译pytorch-gpu-2.0.1版本X86架构CPU下Ubuntu系统环境源码编译pytorch-gpu-2.0.1版本如何拉取指定CPU架构并且指定ubuntu版本并且指定cuda和cudnn版本的docker镜像如何拉取指定CPU架构并且指定ubuntu版本并且指定cuda和cudnn版本......