C++ STL:迭代器 Iterator

news2024/11/14 12:21:37

文章目录

    • 1、迭代器的类型
    • 2、traits
        • iterator_traits
        • type_traits

泛化的指针,容器与算法的桥梁。提供一种方法,按照一定顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。既能对容器进行遍历,又可以对外隐藏容器的底层实现,从而以统一方式向算法传递数据。

作用:访问容器内的元素。

1、迭代器的类型

迭代器的类型

  • 前向迭代器:++ == != * -> =
  • 双向迭代器:在前向迭代器的基础上,增加--
  • 随机访问迭代器:在双向迭代器的基础上,增加+= -= < > <= >=
  • 输入流迭代器:可读++ == != * ->
  • 输出流迭代器:可写++ * =

不同迭代器对应的操作

在这里插入图片描述

2、traits

iterator_traits

萃取迭代器的特性,

  • value_type:迭代器所指对象的类型
  • difference_type:两个迭代器之间的距离
  • pointer:迭代器所指向的型别
  • reference:迭代器所引用的型别
  • iterator_catagory

type_traits

萃取型别特性。针对不同类型的属性,在编译器间完成函数派送的决定。

// 默认构造函数
__type_traits<T>::has_trivial_default_constructor
// 拷贝构造函数
__type_traits<T>::has_trivial_copy_constructor
// 赋值运算符
__type_traits<T>::has_trivial_assignment_operator
// 析构函数
__type_traits<T>::has_trivial_destructor
// 原始数据
__type_traits<T>::is_POD_type

返回结果是具有真假性质的对象,因为我们希望利用响应结果来进行参数推导,而编译器只有面对 class object 形式的参数才会做参数推导。

struct __true_type{};  // 真
struct __false_type{}; // 假

例:

template <class type> 
struct __type_traits {
	typedef __true_type has_trivial_default_constructor;
	typedef __false_type has_trivial_copy_constructor;
	typedef __false_type has_trivial_assignment_operator;
	typedef __false_type has_trivial_destructor;
	typedef __false_type is_POD_type;
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/378149.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

谷歌邮箱账号不会注册?注册失败?这份完美注册教程请收好

谷歌邮箱相信大家都不陌生吧&#xff0c;无论是用于发送和接收邮件&#xff0c;还是用于在国外网站注册&#xff0c;很多人都离不开谷歌邮箱。甚至&#xff0c;一些网站直接提供谷歌邮箱登录选项。这就是为什么很多跨境人想要注册谷歌邮箱的原因。 但是&#xff0c;大部分网友都…

Java学习之路002——面向对象编程

【说明】部分内容来源于网络&#xff0c;如有冲突&#xff0c;请联系作者删除。 一、面向对象编程(OOP) 2.1 对象和类的关系 2.2 面向对象的特征 2.2.1 封装 2.2.2 继承 2.2.3 多态 3、抽象 使用abstract关键字修饰的类或者方法 定义抽象类(使用abstract) // 1、定义抽象方法…

计数排序.

1.动图演示&#xff1a; 2.代码示例&#xff1a; package test1;import java.util.Arrays;public class Test3 {public static void main(String[] args) {int[] nums new int[]{1, 2, 1, 4, 52, 1, 4};int[] arr count_sort(nums, getMax(nums));for (int i : arr) {System…

spring boot 配合element ui vue实现表格的批量删除(前后端详细教学,简单易懂,有手就行)

目录 一.前言&#xff1a; 二. 前端代码&#xff1a; 2.1.element ui组件代码 2.2删除按钮 2.3.data 2.4.methods 三.后端代码&#xff1a; 一.前言&#xff1a; 研究了其他人的博客&#xff0c;找到了一篇有含金量的&#xff0c;进行了部分改写实现前后端分离&#xff0…

【Python实战】爬虫教程千千万,一到实战全完蛋?今天手把手教你一键采集某网站图书信息数据啦~排名第一的竟是...(爬虫+数据可视化)

前言 ​一本本书&#xff0c;是一扇扇窗&#xff0c;为追求知识的人打开认知世界的窗口 一本本书&#xff0c;是一双双翅膀&#xff0c;让追求理想的人张开翅膀翱翔 所有文章完整的素材源码都在&#x1f447;&#x1f447; 粉丝白嫖源码福利&#xff0c;请移步至CSDN社区或文末…

机器学习的特征归一化Normalization

为什么需要做归一化&#xff1f; 为了消除数据特征之间的量纲影响&#xff0c;就需要对特征进行归一化处理&#xff0c;使得不同指标之间具有可比性。对特征归一化可以将所有特征都统一到一个大致相同的数值区间内。 为了后⾯数据处理的⽅便&#xff0c;归⼀化可以避免⼀些不…

Pycharm和跳板机 连接内网服务器

Pycharm和跳板机 连接内网服务器 建立配置文件 本地配置 .ssh 文件夹下配置 config 文件 Host jumpHostName xxxPort 22User xxxServerAliveInterval 30IdentityFile C:\Users\15284\.ssh\id_rsa # 通过密钥连接Host server # 同样&#xff0c;任意名字&#xff0c;随…

vxe自定义表头设置+前端本地数据存储

业务要求 支持拖动排序&#xff0c;按现有内容排序支持显示/隐藏&#xff0c;默认全部显示列表增加顶部格线&#xff0c;用户可以自己调整列宽设置内容仅对该账号有效&#xff0c;前端存储 最终实现的效果图 哪些改动 静态表格改动态表格 table > grid vxe-grid 高级表格…

一文深度解读音视频行业技术发展历程

从1948年的香农定律&#xff0c;到音视频的今天。IMMENSE、36氪&#xff5c;作者 北京时间2月28日凌晨&#xff0c;FIFA年度颁奖典礼在巴黎举行。梅西荣膺年度最佳球员&#xff0c;斯卡洛尼当选年度最佳男足主帅&#xff0c;马丁内斯荣获年度最佳男足门将&#xff01;阿根廷因…

自动售卖机的类型和工作流程分析

线上经济的崛起提高了人们的生活品质&#xff0c;促进了我国市场经济的发展。随着互联网的快速发展&#xff0c;线上经济资源已经饱和&#xff0c;线上和线下资源整合已经成为市场经济发展的方向&#xff0c;而自动售卖机正是线上和线下经济发展的连接纽带。 自动售卖机作为无人…

3.查找算法:顺序查找和二分查找

查找查找&#xff0c;是指在一些数据元素中&#xff0c;通过一定的方法找出与给定关键字相同的数据元素的过程。列表查找&#xff08;线性表查找&#xff09;&#xff1a;从列表中查找指定元素输入&#xff1a;列表&#xff0c;待查找元素输出&#xff1a;元素下标&#xff08;…

多线程 随便起的

进程&#xff1a;进程可以看成程序执行的一个实例。进程是系统资源分配的独立实体&#xff0c;每个进程都拥有独立的地址空间。一个进程无法访问另一个进程的变量和数据结构如果想让-一个进程访问另一个进程的资源&#xff0c;需要使用进程间通信&#xff0c;比如管道&#xff…

LAMP项目部署实战1

一、说明&#xff1a; LAMP&#xff1a;Linux Apache MySQL PHP Apache&#xff1a; Apache是世界使用排名第一的Web服务器软件。主要用于接收用户的请求&#xff0c;处理业务逻辑&#xff0c;返回结果给客户端&#xff08;浏览器&#xff09;。 PHP&#xff1a;一种专门…

SQL 层功能改进 - lookupJoin 的优化

一、传统 join 算法lookupJoin 是 join 查询的一种&#xff0c;传统 join 算法为&#xff1a;1. 遍历 A 表&#xff0c;读取一条数据 r2. 遍历 B 表&#xff0c;对于每条数据&#xff0c;与 r 进行 join 操作3. 重复 1、2 操作&#xff0c;直到 A 表遍历完所有数据二、lookupJo…

在 WIndows 下安装 Apache Tinkerpop (Gremlin)

一、安装 JDK 首先安装 Java JDK&#xff0c;这个去官网下载即可&#xff0c;我下载安装的 JDK19&#xff08;jdk-19_windows-x64_bin.msi&#xff09;&#xff0c;细节不赘述。 二、去 Tinkerpop 网站下载 Gremlin 网址&#xff1a;https://tinkerpop.apache.org/ 点击下面…

用cpolar发布本地的论坛网站 1

网页论坛向来是个很神奇的地方&#xff0c;曾经的天涯论坛和各种BBS&#xff0c;大家聚在在一起讨论某个问题&#xff0c;也能通过论坛发布想法&#xff0c;各种思维碰撞在一起&#xff0c;发生很多有趣的故事&#xff0c;也产生了很多流传一时的流行语录。当然&#xff0c;如果…

推荐5款免费无广告的精品软件

检查一下你最近安装的软件&#xff0c;他们是不是都一样无法避免最终被你打入冷宫的命运&#xff1f;我们明明很懂“在精不在多”的道理&#xff0c;却依然让我们的电脑塞满了形形色色无用的软件。你需要知道的是&#xff0c;如何找到一款适合自己且真正实用的电脑软件。 1.多…

元宇宙营业厅,数字技术融合,赋能实体经济

在我国数字经济与虚拟服务市场规模扩大下&#xff0c;元宇宙营业厅强势来袭&#xff0c;从多场景、多内容&#xff0c;深耕高效协同的特色功能&#xff0c;基于多元化、灵活的交互体验&#xff0c;更大程度上解决线上业务办理抽象繁琐&#xff0c;线下业务办理的时空受限、业务…

4.Spring【Java面试第三季】

4.Spring【Java面试第三季】前言推荐4.Spring27_Aop的题目说明要求Spring的AOP顺序AOP常用注解面试题28_spring4下的aop测试案例业务类新建一个切面类MyAspect并为切面类新增两个注解&#xff1a;spring4springboot1.5.9pom测试类29_spring4下的aop测试结果aop正常顺序异常顺序…

求极限方法总结

1.利用四则运算法则求极限 2.利用两个重要极限求极限 //0除以0型 //1的无穷次方型 3.利用等价无穷小替换替换求极限 //在等价替换时注意和差项 4.利用洛必达法则求极限 5.利用夹逼准则求极限 6.利用单调有界数列极限准则求极限 7.利用无穷小的性质求极限 8.利用函数的连续性…