草庐IT

stl-algorithm

全部标签

【C++进阶(六)】STL大法--栈和队列深度剖析&优先级队列&适配器原理

💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:C++从入门到精通⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学习C++ 🔝🔝栈和队列1.前言2.栈和队列的接口函数熟悉3.适配器介绍4.栈和队列的模拟实现5.deque的简单介绍6.优先级队列深度剖析7.优先级队列的模拟实现8.总结以及拓展1.前言和C语言学习期间的学习顺序一样顺序表,链表过了就是栈和队列但是栈和队列非常特殊,它的内部结构并不是靠自己实现的,而是一种适配器模式本章重点:本篇文章着重讲解适配器原理和栈,队列的接口函数熟悉以及模拟实现适配器里有一个特殊容器:deque最后讲解优先级队列相关知识和实现2.栈和队列的接口函数熟

c++—STL(六大组件)

一、STL概述     1. STL概述    (1)STL定义:STL(standardtemplatelibrary),标准模板库,是一个高效的c++程序库,重在提高了代码的复用性;主要包含了常用的数据结构和基本算法,为广大c++程序员提供了一个可扩展的应用框架;    体现了泛型化(模板化)程序设计的思想,在实现方面是以一种类型程序参数化的方式实现的;采用模板类实现,所以定义时需要执行存储元素的类型(基本类型或自定义类型);   2.STL的六大组件    (1)容器(container):各种基本数据结构    (2)迭代器(iterator):常使用在遍历容器,又可以用在连接容器和算

STL—— unordered_set、unordered_map的介绍及使用

unordered系列关联式容器在C++98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时的效率可达到O(logN),即最差情况下需要比较红黑树的高度次,当树中的结点非常多时,查询效率也不理想。最好的查询是,进行很少的比较次数就能够将元素找到,因此在C++11中,STL又提供了4个unordered系列的关联式容器,这四个容器与红黑树结构的关联式容器使用方式基本类似,只是其底层结构不同。unordered_set的介绍unordered_set是不按特定顺序存储键值的关联式容器,其允许通过键值快速的索引到对应的元素。在unordered_set中,元素的值同时也是唯一地标识它的k

【玩转STL】STL的简介和string类用法和接口讲解(源码解析)

  接触编程时间长一点的朋友想必都多多少少听过vector、string、queue等容器,也大抵了解一些有关STL的概念,这一节,我们就一起来谈一谈STL的六大组件,再来一起深入理解string类。文章目录🍎、什么是STL,和STL版本介绍🍎、STL的六大组件🍎、STL的重要性和缺陷🍎、为什么学习string类?🍎、标准库里的string类🍎总结提示:以下是本篇文章正文内容,下面案例可供参考🍎、什么是STL,和STL版本介绍1.1简介  STL(standardtemplatelibaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的

【C++ • STL】探究string的源码

文章目录一、深浅拷贝二、传统版写法的string类(简单)三、string类的模拟实现四、现代版写法的string类五、总结ヾ(๑╹◡╹)ノ"人总要为过去的懒惰而付出代价ヾ(๑╹◡╹)ノ"一、深浅拷贝浅拷贝:也称位拷贝,编译器只是将对象中的值拷贝过来。如果对象中管理资源,最后就会导致多个对象共享同一份资源,当一个对象销毁时就会将该资源释放掉,而此时另一些对象不知道该资源已经被释放,以为还有效,所以当继续对资源进项操作时,就会发生发生了访问违规。浅拷贝:(1)析构两次,造成程序崩溃(2)一个对象修改影响另外一个如果一个类中涉及到资源的管理,其拷贝构造函数、赋值运算符重载以及析构函数必须要显式给出

【C++】STL之list深度剖析及模拟实现

目录前言一、list的使用 1、构造函数2、迭代器3、增删查改4、其他函数使用二、list的模拟实现 1、节点的创建 2、push_back和push_front 3、普通迭代器 4、const迭代器 5、增删查改(insert、erase、pop_back、pop_front) 6、构造函数和析构函数 6.1、默认构造 6.2、构造n个val的对象 6.3、拷贝构造 6.4、迭代器区间构造 6.5、 赋值运算符重载 6.6、析构函数三、list模拟实现源代码四、list的迭代器失效五、list和vector的对比前言list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可

【C++】哈希的应用——bitset(STL)位图

哈希的应用——bitset(STL)位图文章目录哈希的应用——bitset(STL)位图一、bitset的介绍1.位图的引入2.位图的概念3.位图的应用二、bitset的使用1.bitset的构造方式2.bitset成员函数的使用3.bitset运算符的使用三、bitset位图的模拟实现1.位图的基本框架2.成员函数2.1.构造函数2.2.setresettest2.3.flipcountsize2.4.noneanyall一、bitset的介绍1.位图的引入看这样一道面试题:给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。【腾讯】单纯从判断一

SSL Certificate Signed Using Weak Hashing Algorithm,使用弱哈希算法签名的 SSL 证书的解决方法,在docker下Nginx生成ssl证书https

SSLCertificateSignedUsingWeakHashingAlgorithm,使用弱哈希算法签名的SSL证书的解决方法问题描述解决方案流程步骤一、配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块:--with-http_ssl_module二、生产SSL证书二、修改Nginx配置文件三、到nginx文件夹下新建certs文件,把刚刚生成的crt文件和key文件放进去。四、关闭原来的nginx并移除它,再重启nginx五、在前端config.js修改IP问题描述远程服务使用通过密码弱哈希算法(例如MD2、MD4、MD5或SHA1)签名的SSL证书链

【c++】 STL的组件简介与容器的使用时机

STL六大组件简介STL提供了六大组件,彼此之间可以组合套用,这六大组件分别是:容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器。容器:各种数据结构,如vector、list、deque、set、map等,用来存放数据,从实现角度来看,STL容器是一种classtemplate。算法:各种常用的算法,如sort、find、copy、for_each。从实现的角度来看,STL算法是一种functiontempalte.迭代器:扮演了容器与算法之间的胶合剂,共有五种类型,从实现角度来看,迭代器是一种将operator*,operator->,operator++,operator–等指针相

STL-string(ACM)

1.相当于加了一些操作的vector基本操作字符串转换(C++11)//将字符串转换为整型stoi()//将字符串转换为longlongstoll()//将字符串转换为float型stof()//将字符串转换为double型stod()后面加入s+=t;//时间复杂度O(t)s.push_back();字符串替换s.replace(起始位置,替换长度,要替换的字符串)把string类型转换成C的字符串类型s.c_str();使用它之后可以用puts()//比如puts(s.c_str());找字符串(时间复杂度O(s长度*t的长度))(O(n*n))s.find(t,pos)//从pos位置开