目录一.Iterator接口API二.迭代器的实现原理三.ListIterator四.ConcurrentModificationException(使用迭代器报这个错可以来看下原因及解决方案) 🔔modCount与fail-fast机制一.Iterator接口API 👑在程序开发中,经常需要遍历集合中的所有元素。针对这种需求,JDK专门提供了一个接口java.util.Iterator。Iterator接口也是Java集合中的一员,但它与Collection、Map接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访
目录一.Iterator接口API二.迭代器的实现原理三.ListIterator四.ConcurrentModificationException(使用迭代器报这个错可以来看下原因及解决方案) 🔔modCount与fail-fast机制一.Iterator接口API 👑在程序开发中,经常需要遍历集合中的所有元素。针对这种需求,JDK专门提供了一个接口java.util.Iterator。Iterator接口也是Java集合中的一员,但它与Collection、Map接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访
苦尽甘来文章目录一、仿函数(仿函数就是一个封装()运算符重载的类)1.C语言的函数指针2.C++的仿函数对象二、priority_queue中的仿函数1.模拟实现优先级队列1.1优先级队列的本质(底层容器为vector的适配器)1.2向下调整算法建堆1.3pop堆顶元素时向下调整算法重新调整堆1.4push堆尾元素时向上调整算法重新调整堆1.5priority_queue的OJ题2.在优先级队列中增加仿函数(类模板参数和函数模板参数的不同)3.仿函数的高级用法(当原有仿函数无法满足要求时,需要重新写满足要求的仿函数)三、reverse_iterator(正向迭代器适配器)1.反向迭代器的思想(
苦尽甘来文章目录一、仿函数(仿函数就是一个封装()运算符重载的类)1.C语言的函数指针2.C++的仿函数对象二、priority_queue中的仿函数1.模拟实现优先级队列1.1优先级队列的本质(底层容器为vector的适配器)1.2向下调整算法建堆1.3pop堆顶元素时向下调整算法重新调整堆1.4push堆尾元素时向上调整算法重新调整堆1.5priority_queue的OJ题2.在优先级队列中增加仿函数(类模板参数和函数模板参数的不同)3.仿函数的高级用法(当原有仿函数无法满足要求时,需要重新写满足要求的仿函数)三、reverse_iterator(正向迭代器适配器)1.反向迭代器的思想(
1.什么是tag1.1tag的简单理解tag中文我们可以称它为标签。简单的理解,tag就是对某次commit的一个标识,相当于起了一个别名。例如,在项目发布某个版本的时候,针对最后一次commit起一个v1.0.100这样的标签来标识里程碑的意义。1.2tag的类型有两种类型的标签:轻量标签(lightweight)、附注标签(annotated)【轻量标签】:只是某个commit的引用,可以理解为是一个commit的别名;【附注标签】:是存储在git仓库中的一个完整对象,包含打标签者的名字、电子邮件地址、日期时间以及其他的标签信息。它是可以被校验的,可以使用GNUPrivacyGuard(G
1.什么是tag1.1tag的简单理解tag中文我们可以称它为标签。简单的理解,tag就是对某次commit的一个标识,相当于起了一个别名。例如,在项目发布某个版本的时候,针对最后一次commit起一个v1.0.100这样的标签来标识里程碑的意义。1.2tag的类型有两种类型的标签:轻量标签(lightweight)、附注标签(annotated)【轻量标签】:只是某个commit的引用,可以理解为是一个commit的别名;【附注标签】:是存储在git仓库中的一个完整对象,包含打标签者的名字、电子邮件地址、日期时间以及其他的标签信息。它是可以被校验的,可以使用GNUPrivacyGuard(G
平台:vivado2017.4最近在验证一个单独的模块时,希望可以在线实时改变内部寄存器的值。经过分析发现,VIVADO的VIO可以完美解决我的这个问题。下面来看看官方介绍。VIO它可以实时监控和驱动FPGA内部的信号,输入和输出端口的数量和宽度是可以设置的。因为VIO核心与被监控和驱动的设计是同步的,因此应用于设计的时钟约束也会应用于VIO。下面我们用VIO来监控模块IIC_JFM24C512的动作。此模块是一个EEPROM控制模块。这里使用VIO来给EEPROM写入数据,和读出数据。在IPCatalog中搜索VIO。这里我们分析EEPROM控制模块,我们需要监视的地方就是EEPROM读出的
平台:vivado2017.4最近在验证一个单独的模块时,希望可以在线实时改变内部寄存器的值。经过分析发现,VIVADO的VIO可以完美解决我的这个问题。下面来看看官方介绍。VIO它可以实时监控和驱动FPGA内部的信号,输入和输出端口的数量和宽度是可以设置的。因为VIO核心与被监控和驱动的设计是同步的,因此应用于设计的时钟约束也会应用于VIO。下面我们用VIO来监控模块IIC_JFM24C512的动作。此模块是一个EEPROM控制模块。这里使用VIO来给EEPROM写入数据,和读出数据。在IPCatalog中搜索VIO。这里我们分析EEPROM控制模块,我们需要监视的地方就是EEPROM读出的
整理电脑时发现很多mp3。那是大约2001年至2009年之间。那个时候大家听歌,还是习惯从网上下载mp3。虽然现在听歌比从前方便多了,简单到只需在APP中输入歌名,但用播放器听mp3的感觉是完全不同的……这种感觉可能只有80后能体会吧:D。拷贝到macos后,查看这些mp3的ID3信息是这样的:虽说macos自带的Music.app可以修改ID3信息,但一个个修改太繁琐,不如脚本批量修改来的快。脚本批量更新同一目录下的mp3,如果有传入命令行参数,会覆盖对应的ID3tag。如果没有传参,就批量更新当前目录mp3,将gb2312编码转为utf-8编码。代码已放github
整理电脑时发现很多mp3。那是大约2001年至2009年之间。那个时候大家听歌,还是习惯从网上下载mp3。虽然现在听歌比从前方便多了,简单到只需在APP中输入歌名,但用播放器听mp3的感觉是完全不同的……这种感觉可能只有80后能体会吧:D。拷贝到macos后,查看这些mp3的ID3信息是这样的:虽说macos自带的Music.app可以修改ID3信息,但一个个修改太繁琐,不如脚本批量修改来的快。脚本批量更新同一目录下的mp3,如果有传入命令行参数,会覆盖对应的ID3tag。如果没有传参,就批量更新当前目录mp3,将gb2312编码转为utf-8编码。代码已放github