• 2024-07-02详解C++中的容器,其特点与常用方法
    1.容器的定义在C++中,容器的概念是指一种对象类型,它可以持有其他对象或指向其他对象的指针。这种对象类型在数据存储上提供了一种有效的方式来管理一组元素。容器在C++中通常是模板类的形式。一般来说,容器内的元素都是相同类型的。即如果该容器内存放的是int类型的数据,那么
  • 2024-06-22java集合使用中的注意事项
    集合判断是否为空判断所有集合内部的元素是否为空,使用 isEmpty() 方法,而不是 size()==0 的方式这是因为isEmpty()方法的可读性更好,并且时间复杂度为O(1)。绝大部分我们使用的集合的size()方法的时间复杂度也是O(1),不过,也有很多复杂度不是O(1)的,比如java.util.c
  • 2024-06-21【C++】list的使用方法和模拟实现
    ❤️欢迎来到我的博客❤️前言list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素list与forward_list非常相似:最
  • 2024-06-19设计模式-迭代器模式
    迭代器模式迭代器模式,又称为游标模式,它提供一种顺序访问集合/容器对象元素的方法,而又无需暴漏集合内部表示。迭代器模式可以为不同的容器提供一致的遍历行为,而不用关心容器内容元素组成结构,属于行为型模式。角色:抽象迭代器Iterator:负责定义访问和遍历元素的接口具体迭代器Con
  • 2024-06-18vector的特性及使用
    1、 vector的定义:单独定义一个vector的形式为:vector<typename>vector; 1.如上定义其实相当于一个大小可变化的序列容器,即变长数组。2.vector采用连续的储存空间来储存元素,意味着可以通过下标来访问元素,和数组一样高效,但是又比数组更优秀,它的大小是可以动态改变的,而且
  • 2024-06-16[C++] vector && list 等容器的迭代器失效问题
    标题:[C++]容器的迭代器失效问题@水墨不写bug正文开始:什么是迭代器?    迭代器是STL提供的六大组件之一,它允许我们访问容器(如vector、list、set等)中的元素,同时提供一个遍历容器的方法。然而,在使用迭代器时,我们必须注意所谓的“迭代器失效”问题。一、插入/删
  • 2024-06-13同步与异步
    同步与异步单线程由于JavaScript​是一门单线程的语言,因此JavaScript​在同一个时间只能做一件事。单线程意味着,如果在同个时间有多个任务的话,这些任务就需要进行排队,前一个任务执行完,才会执行下一个任务,会造成运行阻塞,严重的话会造成页面长时间无响应,js执行时间过长等等。
  • 2024-06-13Future集合会等线程池执行完才开始遍历吗?
    先说结论:Future集合并不是等线程池执行完才开始遍历,而是线程池内的线程执行完一条Future集合就立即遍历一条在使用线程池的业务场景下,我们经常需要获取线程执行的返回值,此时我们需要Callable对象当做线程池参数并用List<Future>接收,然后遍历List<Future>获取我们想要的值。但是
  • 2024-06-12vector模拟实现
    目录vector介绍vector示意图 关于vector扩容的问题vector框架构造函数析构函数 vector有关空间容量函数insert和erasepop_back和push_back其它构造函数拷贝构造迭代器区间构造 运算符重载关于迭代器失效问题【重点】有关insert发生迭代器失效有关erase发生
  • 2024-06-10List
    list的介绍及使用list的介绍list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。list与forward_list非常相
  • 2024-06-09【知识点】C++ STL 中的 iterator_traits 类
    iterator_traits讲解基本定义iterator_traits是一个模板类,用于提供与迭代器相关的类型信息。以下是iterator_traits的基本定义:#include<iterator>template<typenameIterator>structiterator_traits{typedeftypenameIterator::difference_typediffere
  • 2024-06-08【C++/STL】list(常见接口、模拟实现、反向迭代器)
     
  • 2024-06-08C++:Traits编程技法在STL迭代器中的应用
    文章目录迭代器相应型别Traits(特性)编程技法——STL源代码门钥迭代器相应型别一:value_type迭代器相应型别二:difference_type迭代器相应型别三:reference_type迭代器相应型别四:pointer_type迭代器相应型别五:iterator_category以`advanced()`为例取消单纯传递调用的函数以`
  • 2024-06-07C++STL---list模拟实现
    本文我们模拟实现STL中的list,为了模拟实现list,实际上我们需要实现三个类,分别为:_list_node,_list_iterator,list。我们先看一下这三个类的基本组成,主要是看看每个类中包含的变量有什么:namespaceCYF{ //模拟实现list当中的结点类 template<classT> struct_list_node
  • 2024-06-05【Java基础】 迭代器
    文章目录前言一、迭代器的概念二、迭代器的使用 三、迭代器的优势四、迭代器的技巧 1.使用增强的for循环(for-each)2. 使用迭代器的泛型3.只在必要时获取迭代器4.考虑并发性5.避免同时修改和遍历集合总结前言迭代器是一种在Java中常用的设计模式,用于
  • 2024-06-04Java面试八股文day02
    系列文章目录文章目录前言跟着我的节奏拿下Java面试八股文二、容器1.java容器都有哪些?2.Collection和Collections有什么区别?java.util.Collection是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java
  • 2024-06-04java调用 RestTemplate post上传
    publicvoid方法名(){RestTemplaterestTemplate=newRestTemplate();Stringurl="http://目标地址";MultiValueMap<String,String>params=newLinkedMultiValueMap<>();params.add("post传输key",&qu
  • 2024-06-02Object 对象实现for of 迭代遍历
    实现代码Object.prototype[Symbol.iterator]=function(){letkeys=Object.keys(this);letindex=0;return{next:()=>{return{value:this[keys[index++]],done:index>=keys.lengt
  • 2024-06-01golang json 性能分析
    Json作为一种重要的数据格式,具有良好的可读性以及自描述性,广泛地应用在各种数据传输场景中。Go语言里面原生支持了这种数据格式的序列化以及反序列化,内部使用反射机制实现,性能有点差,在高度依赖json解析的应用里,往往会成为性能瓶颈,从下面的火焰图中可以发现在业务逻辑处理
  • 2024-05-26C++——list的实现以及源码
    前言:最近学习了c++list的实现,这让我对迭代器的理解又上升了一个新的高度,注意:代码里的list是放在一个叫zgw的命名空间里边,但是在实现list的代码中没有加namespace,这里给个注意,以后复习时能看懂。list的节点:我们首先需要搞出一个list的节点,来存储数据,以及节点的下一个指针,和节
  • 2024-05-26【设计模式】迭代器模式 ——详解Iterator、foreach与for循环的区别
    参考:B站UP主动力节点迭代器模式定义:提供方法,顺序访问集合对象中的各个元素,而又不暴露对象的内部表示。为遍历不同的集合结构提供统一的接口,分离了集合对象的遍历行为。tips:Iterator迭代器本身就是JDK按照该模式设计的迭代器,通常情况下,我们都是直接使用JDK提供的。此处
  • 2024-05-25C++初阶学习第九弹——探索STL奥秘(四)——vector的深层挖掘和模拟实现
    string(上):C++初阶学习第六弹——探索STL奥秘(一)——标准库中的string类-CSDN博客string(下):C++初阶学习第七弹——探索STL奥秘(二)——string的模拟实现-CSDN博客vector(上):C++初阶学习第八弹——探索STL奥秘(三)——深入刨析vector的使用-CSDN博客前言:在前面我们已经学习了string的
  • 2024-05-25Iterater迭代器和增强for循环
    1、Collection接口遍历元素—Iterator迭代器看一下下面这张图片:可以看出Collection接口有一个父接口Iterable,Iterable接口有一个iterator()方法,iterator()方法的类型是Iterator迭代器,实际上当我们使用方法时,返回的是一个Iterator对象,目的是实现元素的遍历。Iterator接口介
  • 2024-05-23c++ 迭代器
     c++迭代器,可以理解成指针的泛化。迭代器与指针:迭代器(Iterator)是指针(pointer)的泛化,提供了对对象的间接访问。迭代器针对容器,而指针类型针对数组。迭代器与模板:模板使得算法独立于存储的数据类型,即任何数据类型都可以使用该程序设计。而迭代器使得算法独立于使用的容器类型,即任
  • 2024-05-23迭代器的一些简单理解
    迭代器的一些简单理解使用迭代器最方便的地方就是和算法库结合,对于实现只需要聚焦于算法,而不用过多考虑数据结构的实现。举一个常见的的例子,std::copy_n用作于范围元素的复制,适配于各个容器类型,并且演化出了back_inserter/front_inserter/inserter这类更上层的迭代器。//st