STL

2024/4/12 23:32:40

Term17:使用.swap()技巧来去除容器中多余的容量

某些时候,你的容器中可能需要存储相当多的元素,因此你push了大量的data进去一个容器中。但因为某些原因,你又pop了很多data出来。此时该容器就会占据大量的多余冗余的内存(容量) 为了避免容器中占用不再需要的内存&…

Term30:确保目标区间足够大

本条款需要我们牢记的是&#xff1a;无论何时&#xff0c;如果所使用的算法&#xff08;来自<algorithm>这个标准头文件&#xff09;需要指定一个目标区间&#xff0c;那么必须确保目标区间足够大&#xff08;用.reserve() or .resize()来do&#xff09;&#xff0c;或者…

C++实现将十进制数转换为小于等于九的任意进制

//十进制转换为小于等于九的任意进制数#include<iostream>#include<string>#include<stack>using namespace std;stack<int> num;void change(int N,int M){if(N<0||M<1){cout<<"error!"<<endl;return;}while(N>0){num…

华为机试题目---字符串替换

题目要求&#xff1a;输入一个字符串&#xff0c;然后在输入一个整数&#xff0c;就是替换字符串的次数&#xff0c;然后依次输入需要替换的字符串…… 例如&#xff1a; 输入&#xff1a;abcdefg 3 a->qwe b->s fg->abc 输出&#xff1a;qwescdeabc //字符串替…

vector【2】模拟实现(超详解哦)

vector 引言&#xff08;实现概述&#xff09;接口实现详解默认成员函数构造函数析构函数赋值重载 迭代器容量size与capacityreserveresizeempty 元素访问数据修改inserterasepush_back与pop_backswap 模拟实现源码概览总结 引言&#xff08;实现概述&#xff09; 在前面&…

STL序列式容器:vector(基本操作+模拟实现)

前言 vector类是STL中的另一大容器&#xff0c;经过封装&#xff0c;vector是一个可变长度并且拥有各种功能的顺序表&#xff0c;在其内部可以利用数组实现。vector和string在物理与逻辑结构上十分相似&#xff0c;不过vector是一个模板类&#xff0c;我们可以在其中存放任意类…

c++STL容器之map/multimap

1.map的基本概念 map是一种关联式容器&#xff0c;map的特性是所有元素会根据元素的键值自动被排序。map中的所有元素都是pair&#xff0c;同时拥有实值(value)和键值(key)。pair的第一个元素被称为键值&#xff0c;第二个元素被称为实值。map不容许两个元素由相同的键值。 注…

c++STL基础部分(一)

STL学习之基础部分&#xff08;一&#xff09; 1.概述 STL库即标准模板库(Standard Template Library)&#xff0c;主要包括容器&#xff0c;算法&#xff0c;迭代器三大部分 a.STL容器(container) STL容器主要包括了绝大多数数据结构&#xff0c;如数组&#xff0c;链表&a…

STL序列式容器:list(基本操作+模拟实现)

前言 list类是STL中封装的链表模板类&#xff0c;并且底层实现是以带头双向链表作为基础进行封装的&#xff0c;甚至一些 STL 版本中&#xff08;比如 SGI STL&#xff09;&#xff0c;list容器的底层实现使用的是带头双向循环链表 list 容器中各个元素的前后顺序是靠指针来维…

[c++] 一个支持安装卸载,复杂运算的简易计算器

这是大一放假前最后做的一个小玩意,现在抽空整理了一下,纪念自己第一个作品 目录 一.技术栈,开发工具 二.需求分析 三.核心算法 四.成果展示 五. 遇到的问题 没加标准表达式 打包过程中的问题 添加卸载的功能 七.安装包获取以及代码 Calculator.h Calculator.cpp m…

Term20:为包含指针的关联容器指定比较类型(important)

本条款告诉我们&#xff0c;当我们在关联式容器中存放指针类型的对象时&#xff0c;就应该自定义一个满足我们需求的比较器类型&#xff0c;也即编写一个用于比较的谓词&#xff08;重载operator()符号且返回值为bool类型的一个类&#xff09;。 why&#xff1f;假设&#xff0…

stl标准库系列之--deque

1、概述 deque 是 double-ended queue 的缩写&#xff0c;又称双端队列容器。是由一段一段的定量连续空间构成&#xff0c;可以向两端发展&#xff0c;因此不论在尾部或头部安插元素都十分迅速。 在中间部分安插元素则比较费时&#xff0c;因为必须移动其它元素。 我们看下de…

STL标准库系列之--相关概念

前言 在学习STL编程的前提&#xff0c;是需要了解C模板的概念。模板是C程序设计语言中的一个重要特征&#xff0c;而标准模板库正是基于此特征。标准模板库使得C编程语言在有了同Java一样强大的类库的同时&#xff0c;保有了更大的可扩展性。 1、什么是STL STL&#xff0c;英…

stl标准库系列之--vector

1、概述2、定义3、特点4、创建方法5、内存管理6、成员函数7、使用8、迭代器8、容量&#xff08;capacity&#xff09;和大小&#xff08;size&#xff09;的区别1、概述 了解vector之前&#xff0c;我们先了解一下C的普通数组&#xff0c;在C11之后&#xff0c;新增了array序列…

stl标准库系列之--map

1、概述2、pair3、定义4、特点5、创建方法1、map<> 容器类的默认构造函数会创建一个空的 map 容器。2、以初始化列表的形式定义map对象3、复制构造6、成员函数7、迭代器8、几种插入数据的方法1、重载运算符[]的使用2、insert函数的几种插入数据方法1、无需指定插入位置&a…

stl使用中的经验(十五)-- 确保less<T> 和 operator< 有相同的语义

我们都知道&#xff0c;stl容器中的是有默认的排序函数的&#xff0c;默认排序less<T>&#xff0c;一般都是按照大小排序的。如果存储的是自定义的元素&#xff0c;并且假设我们的排序因子有多个&#xff0c;则主要是看我们自定义类中的 operator< 函数是怎么书写的。…

stl使用中的经验(十三)--若类是一个函数子,则应使它可配接

我们先看一个例子&#xff1a; #include <iostream> #include <vector> #include <algorithm> #include <iterator> using namespace std;class Widget { public:Widget(int a) : m_a(a){}int value() const{return m_a;} private:int m_a{0}; };…

C++标准库(STL)中的容器

1. 序列容器 容器里的元素是有位置的,有前有后 1.1. array 静态连续数组. C11中新增. 大小是固定的,不能改变. 和C语言中本来支持的数组[]特性类似; 支持随机存取, 支持容器都支持的迭代器操作,支持判断数组中元素的数量等操作; 1.2. vector 动态连续数组. 大小可变 …

vector查找元素

vector查找元素 导入&#xff1a;#include<algorithm> vector<int> a; a.push_back(1); a.push_back(2); a.push_back(3); if (find(a.begin(),a.end(),3) ! a.end())cout<<3<<endl;

stack与queue容器简单功能模拟实现

第一次尝试 #include<iostream> #include<vector> #include<list> using namespace std;template<class T, class Con vector<T>> class mystack { public:mystack(){}void push(const T& val) {_st.push_back(val);}void pop() {_st.pop_…

STL关联式容器:unordered_map和unordered_set

前言 在C98中&#xff0c;STL提供了底层为红黑树结构的一系列关联式容器&#xff0c;在查询时效率可达到 O(logN)&#xff0c;即最差情况下需要比较红黑树的高度次&#xff0c;当树中的结点非常多时&#xff0c;查询效率也不理想。 在C11中&#xff0c;STL又提供了4个unorder…

手撕vector容器

一、vector容器的介绍 vector是表示可变大小数组的序列容器。就像数组一样&#xff0c;vector也采用的连续存储空间来存储元素&#xff0c;但是又不像数组&#xff0c;它的大小是可以动态改变的&#xff0c;而且它的大小会被容器自动处理。 总结&#xff1a;vector是一个动态…

[总结]C++ 之 向量vector

目录 常用函数: 一.声明,初始化 二.访问 1.和数组相似 2.使用迭代器 注意: ★补充: 补充: 三.二维向量 四.内存管理使用 常用函数: front()&#xff1a;返回当前vector容器中 起始元素的引用。 back()&#xff1a;返回当前vector容器中末尾元素的引用。 begin()&#…

二叉树lc做题自己的笔记总结(不断更新)

二叉树&#xff1a; 这种数据结构&#xff0c;我必须要搞明白的点&#xff1a; 1&#xff1a;二叉树的深度 对应着 二叉树的前序遍历(中->左->右)的思路&#xff08;因为深度是从根节点->叶子节点来算的&#xff09; 对应的经典题目是&#xff1a;T110 平衡二叉树 2&…

Term45:正确区分count、find、binary_search、lower_bound、upper_bound和equal_range。

前情提示&#xff1a;我个人认为本条款Term45是《Effective STL》这本书中最重要的其中一个term&#xff01;它不仅告诉我们如标题所述的几种算法的具体使用的规范&#xff0c;还提醒我们&#xff0c;应该如何在使用STL容器时do规范的查找操作&#xff01; 假设我有一个容器&am…

set_intersection、set_union、set_difference学习总结

本博客中&#xff0c;我们将学习并总结常用的集合算法。算法简介&#xff1a; set_intersection //求2个容器的交集 set_union //求2个容器的并集 set_difference //求2个容器的差集 &#xff08;这3个集合算法都要求必须是有序的容器的区间&#xff0c;否则一定会报异常&…

16 标准模板库STL之vector

基础知识 1、vector和数组有点类似,但它比数组更好用。一般来说,数组的长度是不能动态拓展的,因此就需要考虑长度到底多大合适。长度不能过大,否则浪费内存;也不能过小,否则内存不够。vector正好弥补了这个缺陷,相当于一个可以自动改变数组长度的动态数组。 2、vector拥…

C++ STL笔记

CPP网址 STL六大组件 容器 算法 迭代器 适配器 仿函数 分配器 string 字符串 #include <string> size(), length() 获得长度 find() 查找 形参有1个或2个 string::npos 值为-1&#xff0c;字符串末尾 insert() 插入 substr() 字符串截取 replace() 替换 形参有3个…

C++_String增删查改模拟实现

C_String增删查改模拟实现 前言一、string默认构造、析构函数、拷贝构造、赋值重载1.1 默认构造1.2 析构函数1.3 拷贝构造1.4 赋值重载 二、迭代器和范围for三、元素相关&#xff1a;operator[ ]四、容量相关&#xff1a;size、resize、capacity、reserve4.1 size、capacity4.2…

stl使用中的经验(十八)--使用函数对象作为算法的参数

使用高级语言编写程序的缺点是&#xff0c;越抽象&#xff0c;代码的效率越低。 例如下面的例子&#xff0c;我们将一个由小到大的存储10000000个double类型的vector调用sort算法排序&#xff0c;并且让他的顺序改为由大到小。 typedef vector<double> DVec; typedef v…

利用离散化求区间和

拿AcWing 802. 区间和举例 输入样例&#xff1a; 3 3 1 2 3 6 7 5 1 3 4 6 7 8输出样例&#xff1a; 8 0 5 从x的取值范围可见这类题与前缀和的应用是有区别的, 为了减少大量无用的操作,将其离散化 思路: 1.将所有出现的坐标(包括想求的边界)记下,因为这其中可能会有很大的…

【OJ - stack】栈的压入、弹出序列

OJ - 栈的压入、弹出序列 题目难度&#xff1a;中等 OJ链接&#xff1a;栈的压入、弹出序列__牛客网 (nowcoder.com) 输入两个整数序列&#xff0c;第一个序列表示栈的压入顺序&#xff0c;请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序…

STL:内建函数对象记录

STL内建了一些函数对象。分为:算数类函数对象,关系运算类函数对象&#xff0c;逻辑运算类仿函 数。这些仿函数所产生的对象&#xff0c;用法和一般函数完全相同&#xff0c;当然我们还可以产生无名的临时 对象来履行函数功能。使用内建函数对象&#xff0c;需要引入头文件 #inc…

STL中unique原理实现 及示例

vector<int>::iterator unique(vector<int>& a) {int t 0;for(int i0; i<a.size(); i)if(!i || a[i]!a[i-1])a[t] a[i];return a.begin()t; }int main() {...a.erase(unique(a),a.end());...} 去重后,数组会有如下特点: 除了首位元素,其余元素和各自的前…

模板初阶与STL简介

目录泛型编程函数模板概念语法格式原理实例化分类匹配原则类模板语法格式实例实例化STL简介概念六大组件泛型编程 在现在所学的基础上&#xff0c;我们想要实现一个功能相同、参数类型不同的函数时&#xff0c;我们所能想到的办法就是函数重载&#xff0c;但是函数重载虽能解决…

c++STL之set/multiset

1.set基本概念 set的特性是&#xff0c;所有元素都会根据元素的键值自动被排序。set的元素可以不像map那样同时可以拥有实值(value)和键值(key)&#xff0c;set元素的键值就是实值&#xff0c;实值就是键值。set元素不容许两个元素有相同的键值。 注意&#xff1a;同样不能通…

对于map/multimap/unordered_map的学习使用理解

一、共同点&#xff1a; ①map/multimap/unordered_map这三种标准的容器所存储的元素都是对组pair 对组的定义方式: pair<T1,T2> p make_pair(data1,data2); ②map/multimap/unordered_map都允许其对应的pair的value重复or不重复 ③map/multimap不论你是让他默认升序…

stl容器使用中的经验(三)--swap函数的使用

1、怎样将vector和string传给旧的CAPI 怎样将vector当作一个数组来使用&#xff0c;在C标准化后&#xff0c;我们都致力于使用vector来代替数组&#xff0c;但不可不承认的是&#xff0c;老的C版本的API还是存在的&#xff0c;那么我们怎么用vector来当作是数组来用。 简单的…

Term40:若一个类是函数子(functor),则应使它可配接(adaptable)

要读懂本Term所说之内容&#xff0c;不妨请先看懂以下的test codes&#xff1a; #include<iostream> #include<vector> #include<algorithm> #include<list> #include<memory> #include<functional> using namespace std; class Widget {…

STL序列式容器:string(基本操作+模拟实现)

前言 STL&#xff08;Standard Template Library-标准模板库&#xff09;&#xff0c;是C标准库的重要组成部分&#xff0c;STL是C中的优秀作品&#xff0c;有了它的陪伴&#xff0c;许多底层的数据结构以及算法都不需要自己重新造轮子&#xff0c;站在前人的肩膀上&#xff0…

Term13:vector和string优先于动态分配的数组

当你在写new T[N]的代码时&#xff0c;请一定要优先考虑使用STL中的vector容器orstring容器来代替你自己new的数组。可能你会问我为什么呢&#xff1f; Reason&#xff1a;当你决定用new来动态分配内存时&#xff0c;这意味着你将承担如下责任&#xff1a; ①&#xff1a;你必须…

Term41:理解ptr_func、mem_fun、mem_func_ref的由来

给出一个问题&#xff1a;如果有一个函数f和一个对象x&#xff0c;现在我们希望在x上调用f&#xff0c;而在x的成员函数之外&#xff0c;为了执行这个调用操作&#xff0c;C提供了3种不同的语法&#xff1a; f(x);//语法#1: f是一个non-member-func x.f();//语法#2: f是一个me…

Map/multimap 学习(后续会完善该博客的字体,便于我们学习复习)

本节中&#xff0c;我们来学习map/multimap容器 &#xff08;在STL中&#xff0c;map容器具有高效率&#xff0c;高性能的称呼&#xff01;&#xff09; map/multimap容器可以用于&#xff1a;在大量的数据当中找到你想要的某一个数据&#xff0c;比如通过一个身份证号码在全中…

Set/multiset 学习(后续会完善该博客的字体,便于我们学习复习)

set or multiset容器的总结。本节中&#xff0c;我们会学习set / multiset(集合)容器 当然&#xff0c;你只要包含了头文件#include<set>之后&#xff0c;你既可以创建set容器&#xff0c;也可以创建multiset容器了 简介&#xff1a; set/multiset容器中所有的元素都会在…

STL中优先队列(堆)的详解

文章目录 priority_queue的基本介绍堆(heap)堆的概念与结构 priority_queue 的介绍与使用 priority_queue的基本介绍 这个priority_queue翻译成中文就是优先级队列&#xff0c;但其实我们很难去一眼看出他的意思到底是什么&#xff0c;他的逻辑结构实际上类似于数据结构中的堆…

【C++ - STL】set、map、multiset、multimap 容器(介绍、使用、应用场景)

文章目录前言一、set&#xff08;集合&#xff09;1.1 set容器介绍1.2 set的使用① set的常用接口② 使用举例排序去重1.3 总结二、multiset三、map&#xff08;映射&#xff09;3.1 map容器介绍3.2 键值对 - pair&#xff08;⭐核心 - 非常重要&#xff09;3.3 map的使用① ma…

STL is_sorted排序算法

排序是要耗费时间的&#xff0c;尤其是在有大量元素时。测试元素段是否已经排好序可以避免不必要的排序操作。如果两个迭代器参数所指定范围内的元素是升序排列的&#xff0c;函数模板 is_sorted() 就会返回 true。 为了能够顺序处理元素&#xff0c;迭代器至少需要是正向迭代…

大理石在哪? 排序函数练习例题

大理石在哪儿 现有N个大理石&#xff0c;每个大理石上写了一个非负整数、首先把各数从小到大排序 然后回答Q个问题。每个问题问是否有一个大理石写着某个整数x&#xff0c;如果是&#xff0c;还要 回答哪个大理石上写着x。排序后的大理石从左到右编号为1~N。(在样例中&#xff…

C++ | STL deque容器

目录 一.简述deque容器 二.deque的创建方式 三.deque容器的插入和删除操作 四.deque的底层形式以及扩容方式。 五.deque容器底层内存连续的实现方法 一.简述deque容器 deque是一个双端队列容器&#xff0c;其在底层为一个双端队列&#xff0c;所需要的头文件为#include&l…

C++ Primer Plus 第六版(中文版)第十六章(重置版)编程练习答案

//本博主所写的代码仅为阅读者提供参考&#xff1b; //若有不足之处请提出&#xff0c;博主会尽所能修改&#xff1b; //附上课后编程练习题目&#xff1b; //若是对您有用的话请点赞或分享提供给它人&#xff1b; //第3题的wordlist.txt文件内容如下(应提前创建一个wordlis…

STL中关于map和set的四个问题?

STL map和set的使用虽不复杂&#xff0c;但也有一些不易理解的地方&#xff0c;如&#xff1a; # 为何map和set的插入删除效率比用其他序列容器高&#xff1f; # 为何每次insert之后&#xff0c;以前保存的iterator不会失效&#xff1f; # 为何map和set不能像vector一样有个res…

[剑指offer]JT64---滑动窗口的最大值(deque双向队列滑动窗口!)

剑指offer第六十四题题目如下思路与代码题目如下 思路与代码 对于数组&#xff0c;假设我们当前遍历到下标i&#xff0c;对于下标i1的元素&#xff08;假设i和i1都在同一个窗口&#xff09;&#xff0c;如果比arr[i]大&#xff0c;说明了什么&#xff1f; 如果arr[i1] 已经大于…

【C++ STL之map,set,pair详解】

目录 一.map映射1.简介2.包含头文件及其初始化3.基本操作4.用迭代器正反遍历5.添加元素的四种方式6.元素的访问7.对比unordered_map&#xff0c;multimap 二.set集合1.简介2.包含头文件及其初始化3.基本操作4.元素的访问5.set&#xff0c;multiset&#xff0c;unordered_set&am…

stl容器使用中的经验(六)--考虑 map::opreator[]和map::insert()的效率问题

结论 &#xff1a;当效率至关重要时&#xff0c;如果要更新一个容器的值&#xff0c;优先选择map::operatot[],如果需要插入一个新的元素&#xff0c;则优先选择map::insert()。 假设定义如下类&#xff1a; class Widget{ public:Widget();Widget(const double& val);Wi…

四、multiset多重集合容器与set集合容器的区别

简介&#xff1a;multiset与set大体上是一样的&#xff0c;唯一不同的是&#xff0c;multiset允许重复的元素键值插入&#xff0c;set是不允许的。关于set集合容器的详细内容看&#xff1a;https://blog.csdn.net/ysz171360154/article/details/84142947 multiset容器内部结…

STL erase函数的使用陷阱总结大全

STL erase函数的使用陷阱总结大全 本文转载https://www.cnblogs.com/blueoverflow/p/4923523.html 1.list,set,map容器 1.1 正确写法1 1.2 正确写法2 1.3 错误写法1 1.4 错误写法2 1.5 分析 2. vector,deque容器 2.1 正确写法 2.2 注意 3.迭代器失效的情况 3.1 vector 3…

STL + c++ + 模板 + 重要思维 + 基础算法+ 经典算法 + 经典实例 + 编程总结+ 心得+ 入门必会 + 知识点汇总。

STL及经典实例 STL简介&#xff1a;接下来我们主要从顺序性容器&#xff0c;关联容器&#xff0c;容器适配器&#xff0c;迭代器&#xff0c;算法等进行展开。顺序性容器&#xff1a;一&#xff1a;vector 1.vector是一个可变长数组&#xff0c;也就是长度不固定。 2.vector&am…

stl向量_在C ++ STL中更改向量的特定元素

stl向量Given a C STL vector and we have to change a particular element. 给定一个C STL向量&#xff0c;我们必须更改一个特定元素。 更改向量的特定元素 (Changing a particular element of a vector ) We can change a particular element of a C STL vector using fo…

C++STL剖析(九)—— unordered_map和unordered_multimap的概念和使用

文章目录1. unordered_map的介绍和使用&#x1f351; unordered_map的构造&#x1f351; unordered_map的使用&#x1f345; insert&#x1f345; operator[ ]&#x1f345; find&#x1f345; erase&#x1f345; size&#x1f345; empty&#x1f345; clear&#x1f345; sw…

vector迭代器失效与深浅拷贝问题

目录 1、vector迭代器失效问题 1.1、insert迭代器失效 扩容导致野指针 意义变了 官方库windows下VS和linux下对insert迭代器失效的处理 1.2、erase迭代器失效 官方库windows下VS和linux下对erase迭代器失效的处理 1.3、迭代器失效总结 2、深浅拷贝问题 1、vector迭…

stl vector 函数_使用C ++ STL中的vector :: begin()和vector :: end()函数以向量的相反顺序打印所有元素...

stl vector 函数以相反的顺序打印向量的所有元素 (Printing all elements of a vector in reverse order) To print all elements of a vector in reverse order, we can use two functions 1) vector::begin() and vector::end() functions. 要以相反的顺序打印矢量的所有元素…

MySTL实现之MyList

MySTL实现 实现STL库中的基础容器及基本函数 文章目录MySTL实现MyList一、结点的基类二、迭代器三、MyList类四、测试总结MyList 平时很少使用STL中的List容器&#xff0c;因此在实现的时候走了很多弯路&#xff0c;也借鉴了不少博主的实现方式&#xff0c;在结合自己的理解进…

[C++随笔录] stack queue使用

stack && queue使用 stackqueue题目训练 stack 栈的特点是 先进后出(first in last out) 我们可以看出, stack的接口相比 vector/string/list 的接口少的太多了 构造函数 && 容器适配器 容器适配器的含义: 首先, 适配器 — — 用户传数据进来, 我们用合适的…

【C++ STL】string 容器(介绍、使用、深浅拷贝、模拟实现、写时拷贝)

文章目录前言一、STL - string 的介绍二、string 的使用&#xff08;常用接口介绍&#xff09;2.1 常见构造2.2 容量操作2.3 访问操作2.4 迭代器及遍历操作2.5 修改操作2.6 string 类的非成员函数重载2.7 补充一些接口三、string 类的模拟实现3.1 深浅拷贝&#xff08;⭐重要&a…

c++ stl erase_C ++ STL中的set :: erase()函数

c stl eraseC STL set :: erase()函数 (C STL set::erase() function) set::erase() function is a predefined function, it is used to erase an element from a set. set :: erase()函数是预定义的函数&#xff0c;用于删除集合中的元素。 Prototype: 原型&#xff1a; s…

C++ STL用法讲解传送门

https://www.cnblogs.com/CnZyy/p/3317999.html &#xff08;STL基本都在这&#xff09; https://www.cnblogs.com/Nonono-nw/p/3462183.html &#xff08;vector&#xff09; https://blog.csdn.net/sinat_36165006/article/details/55803329 &#xff08;deque&#xff09; h…

【C++】vector的模拟实现

​&#x1f320; 作者&#xff1a;阿亮joy. &#x1f386;专栏&#xff1a;《吃透西嘎嘎》 &#x1f387; 座右铭&#xff1a;每个优秀的人都有一段沉默的时光&#xff0c;那段时光是付出了很多努力却得不到结果的日子&#xff0c;我们把它叫做扎根 目录&#x1f449;前言&…

三、set集合容器-遍历删除查找与自定义

简介&#xff1a;要学习set集合容器&#xff0c;首先要了解红黑树&#xff08;Red-black Tree&#xff09;。红黑树是一种自平衡二叉查找树&#xff0c;是计算机科学中用到的一种数据结构&#xff0c;典型的用途是实现关联数组。Set集合容器实现了红黑树的平衡二叉检索树的数据…

【C++学习手札】模拟实现string

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;缶ビール—みゆな 0:41━━━━━━️&#x1f49f;──────── 2:52 &#x1f504; ◀️ ⏸ ▶️ ☰ &…

Codeforces Round 830 (Div. 2) D1. Balance (Easy version)

This is the easy version of the problem. The only difference is that in this version there are no "remove" queries. Initially you have a set containing one element — 0. You need to handle q queries of the following types: x — add the integer…

STL 容器

STL 容器 容器底层数据结构时间复杂度有无序可不可重复其他array数组随机读改 O(1)无序可重复支持随机访问vector数组随机读改、尾部插入、尾部删除 O(1) 头部插入、头部删除 O(n)无序可重复支持随机访问deque双端队列头尾插入、头尾删除 O(1)无序可重复一个中央控制器 多个缓…

『C++之STL』双端队列 - deque

前言 双端队列,Double-ended queue,简称为deque是一种线性结构的一种容器; 在数据结构中出现的顺序表与链表,或者栈与队列都算是线性结构; 在结构中,它与vector相比较会相似一些; 但是在实际当中,双端队列 - deque 包含了vector与list的优点; vector(顺序表) 支持随机访问,空…

【学习笔记】C++STL学习

01 前言 因为受到疫情影响在家学习效率底下(就是自己懒菜)&#xff0c;估计蓝桥杯做慈善了&#xff0c;也临时抱下佛脚 02 STL初识 2.1 STL的诞生 C的面向对象的泛型编程思想&#xff0c;目的就是复用性提升&#xff0c;大多情况下&#xff0c;数据结构和算法都未能有一套标…

C++编程语言STL之set及相关容器介绍

本文主要介绍C编程语言的STL(Standard Template Library)中set及相关容器的相关知识&#xff0c;同时通过示例代码介绍这些容器的常见用法。 1 概述 关联容器&#xff08;associative-container&#xff09;和顺序容器有着根本的不同&#xff1a;关联容器中的元素是按关键字来…

STL 之 初识set multiset(map multimap)

一&#xff1a;起因 &#xff08;1&#xff09;&#xff1a;set的含义是集合&#xff0c;它是一个有序的容器&#xff0c;里面的元素都是排序好的&#xff0c;支持插入&#xff0c;删除&#xff0c;查找等操作&#xff0c;就 像一个集合一样。所有的操作的都是严格在logn时间之…

【C++心愿便利店】No.12---C++之探索string底层实现

文章目录 前言一、写实拷贝&#xff08;了解&#xff09;二、string类常用接口实现2.1 成员变量2.2 默认构造函数2.3 拷贝构造函数2.4 operator2.5 operator[]2.6 c_str2.7 size()2.8 capacity() 三、迭代器的实现3.1 begin()和end()3.2 范围for 四、string类增删查改4.1 reser…

C++ STL 六组件介绍

文章目录 前言概念容器&#xff08;container&#xff09;概念类型代码示例作用&#xff08;为什么需要&#xff09; 算法&#xff08;algorithm&#xff09;概念类型代码示例作用&#xff08;为什么需要&#xff09; 迭代器&#xff08;iterator&#xff09;概念常用迭代器类型…

[C++]:8.C++ STL引入+string(介绍)

C STL引入string(介绍&#xff09; 一.STL引入&#xff1a;1.什么是STL2.什么是STL的版本&#xff1a;2-1&#xff1a;原始版本&#xff1a;2-2&#xff1a;P. J 版本&#xff1a;2-3&#xff1a;RW 版本&#xff1a;2-4&#xff1a;SGL版本&#xff1a; 3.STL 的六大组件&…

STL函数——remove函数

目录1. remove函数2. 错误用法3.remove的执行过程4. 如何真正删除1. remove函数 remove是STL中的函数&#xff0c;和erase是有区别的&#xff1a; &#xff08;1&#xff09;erase是容器自带的成员函数&#xff0c;而remove是STL中的函数&#xff1b; &#xff08;2&#xf…

【洛谷】P1102 A-B 数对

原题链接&#xff1a;https://www.luogu.com.cn/problem/P1102 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 将A-BC转化成ABC&#xff0c;然后遍历数组&#xff0c;让数组的每个元素加C&#xff0c;再查找原数组中是否存在对应数组元素C之后的值。…

【C++STL精讲】string类的基本使用与常用接口

文章目录&#x1f490;专栏导读&#x1f490;文章导读&#x1f337;为什么要学习string类&#xff1f;&#x1f337;string类的基本使用&#x1f337;string类的常用接口&#x1f33a;数据访问函数&#x1f33a;容量相关函数&#x1f33a;操作函数&#x1f337;迭代器与范围for…

35、标准模板类(STL)(一),综述、容器及其操作

C的 STL 是一个功能强大的库&#xff0c;它是建立在模板机制上&#xff0c;能够满足用户对存储管理不同类型数据的通用容器和施加在这些容器上的通用算法的巨大需求&#xff0c;并且具有完全的可移植性。因此在寻求程序的解决方案时&#xff0c;应该首先在 STL 中寻求恰当的容器…

vector元素的求和

vector元素的求和 使用accumulate方法. 一定要写&#xff1a;#include<numeric> vector<int> a; a.push_back(1); a.push_back(2); a.push_back(3); int sum accumulate(a.begin(),a.end(),0);

string里面的find函数

string里面的find函数 string.find() 成功则会返回一个比string.nops小的数。否则返回大于等于string.nops的数 string s "asdfghjkl"; if(s.find("g") < s.npos){printf("true"); } else{printf("false"); }//out&#xff1a;tr…

C++标准模板库(STL)之sort函数

C语言中&#xff0c;有很多东西需要读者自己去实现&#xff0c;如果不好实现的话还会容易出错。为了简化这些&#xff0c;C为使用者提供了标准模板库&#xff08;Standard Template Library,STL&#xff09;&#xff0c;其中封装了很多相当实用的容器。&#xff08;容器可以暂时…

STL容器适配器:stack、queue、priority_queue

前言 容器适配器是一个封装了序列容器的类模板&#xff0c;它在一般序列容器的基础上提供了一些不同的功能&#xff0c;之所以称之为容器适配器&#xff0c;是因为它可以通过适配容器的现有接口来提供不同的功能。 简单的理解容器适配器&#xff0c;其就是将不适用的序列式容…

STL之Set:Set的基本用法

set集合容器实现了红黑树&#xff08;Red-Black Tree&#xff09;的平衡二叉检索树的的数据结构&#xff0c;在插入元素时&#xff0c;它会自动调整二叉树的排列&#xff0c;把该元素放到适当的位置&#xff0c;以确保每个子树根节点的键值大于左子树所有节点的键值&#xff0c…

C++:模板

目录 ●模板的概念 ●函数模板 1. 函数模板的定义 2. 函数模板的使用 3.模板函数的生成 ●类模板与模板类 1.类模板的定义 2. 类模板的使用 ●类模板的友元 ●STL标准库的相关内容(迭代器、算法、容器等) 1.STL简介 2.STL主要组成&#xff1a; 3. 容器&#xff0…

STL中简单算法实例sort()、next_permutation()

STL中简单算法实例sort()、next_permutation()#include<iostream> #include<string> #include<algorithm>using namespace std;int main() {string letters;cout<<"Enter the letters grouping (quit to quit): ";while(cin>>letters …

二、String基本字符系列向量容器——删除添加替换查找比较

简介&#xff1a;在C语言中只提供了一个char类型来处理字符&#xff0c;而对于字符串只能通过字符串数组处理&#xff0c;有些不太方便。CSTL提供了string基本字符系列容器来处理字符串&#xff0c;可以把string理解为字符串类&#xff0c;它提供有删除、添加、替换、查找、比较…

【超详细练气篇】STL之string类---常见接口函数(1)

个人主页&#xff1a;平行线也会相交&#x1f4aa; 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【C之路】&#x1f48c; 本专栏旨在记录C的学习路线&#xff0c;望对大家有所帮助&#x1f647;‍ 希望我们一起努力、成长&…

笔记(六)——stack容器的基础理论知识

stack是堆栈容器&#xff0c;元素遵循先进后出的顺序。头文件&#xff1a;#include<stack>一、stack容器的对象构造方法stack采用模板类实现默认构造例如stack<T> vecT&#xff1b;#include<iostream> #include<stack> using namespace std; int main(…

STL容器之<forward_list>

文章目录测试环境forward_list介绍头文件模块类定义对象构造初始化元素访问元素插入和删除容器大小迭代器其他函数测试环境 系统&#xff1a;ubuntu 22.04.2 LTS 64位 gcc版本&#xff1a;11.3.0 编辑器&#xff1a;vsCode 1.76.2 forward_list介绍 序列式容器不支持随机访问…

c++STL基础部分(二) 之模板

CSTL基础部分(二&#xff09; 之模板 1.引言 a.模板是C中重要的概念&#xff0c;它提供了一种通用的方法来开发可重用的代码&#xff0c;说白了&#xff0c; 就是为了图省事:)&#xff0c;使用模板可以帮助我们创建参数化的C类型. b.C中模板分为两种类型&#xff1a;函数模板…

【C++】STL之priority_queue类源码剖析

目录 概述 算法 源码 PriorityQueue.h test.cpp 测试结果 概述 priority_queue&#xff1a;优先级队列&#xff0c;包含在头文件<queue>中 优先级队列类似于堆结构&#xff0c;优先级最高的元素被置为堆顶&#xff0c;最优先被弹出top()和删除pop() 优先级队列的…

基于map的海量数据归类

背景&#xff1a; 有大概5000万条的数据&#xff0c;每条数据都是以json格式进行存储&#xff0c;每条数据中有多个字段&#xff0c;需要按照id字段将各个数据进行归类。 方案&#xff1a; 采用map<int, vector<string> > 存储id和该id类别下面的数据。 步骤&a…

STL函数解析

目录 unique函数 map lower_bound&upper_bound 未完待续 ing... unique函数 unique用于去重&#xff0c;将一个函数中去重的函数移到前面来&#xff0c;后面的不做更改&#xff0c;具体举例 然后能得出 由此可以看出&#xff0c;一共有四位不同的元素&…

C++ STL使用,以及注意事项

0x01 缘由 最近在做产品的开发上发现一个问题&#xff0c;发现对待成熟的库和开源组件时&#xff0c;开发者有两种态度&#xff1a;一类&#xff1a;非常崇拜开源组件和STL&#xff0c;盲目的使用&#xff1b;二类&#xff1a;喜欢自己去实现一个库&#xff0c;类似造轮子&…

STL基础系列之--vector

向量&#xff08;vector&#xff09;是一种随机访问的数组类型&#xff0c;提供了对数组元素的快速&#xff0c;随机访问&#xff0c;以及在序列尾部快速随机的插入和删除操作。它在需要时还可以改变其大小&#xff0c;是大小可变的向量。 为什么说vector是随机访问呢&#xf…

STL算法系列:(一)全局介绍

C——STL所有算法介绍 STL算法部分主要由头文件<algorithm>,<numeric>,<functional>组成。要使用 STL中的算法函数必须包含头文件<algorithm>&#xff0c;对于数值算法须包含<numeric>&#xff0c;<functional>中则定义了一些模板类&#…

vs2008无法直接查看STL值的解决方法

安装完visual studio之后你可能的调试时看到的STL的内容是下面这样的而你更希望看到下面这样的调试显示&#xff1a;那么&#xff0c;如何让vs2008显示成下面的样子呢&#xff1f;其实就说一项配置的问题。把下面蓝色的一项“在变量窗口中显示对象的原始结构” 取消 勾选。

『C++ - STL』之优先级队列( priority_queue )

文章目录 前言优先级队列的结构优先级队列的模拟实现仿函数 最终代码 前言 什么是优先级队列&#xff0c;从该名中可以知道他一定有队列的一定属性&#xff0c;即先入先出(LILO)&#xff0c;而这里的优先级则可以判断出它的另一个特点就是可以按照一定的条件将符合该条件的先进…

【C++初阶】STL详解(三)vector的介绍与使用

本专栏内容为&#xff1a;C学习专栏&#xff0c;分为初阶和进阶两部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握C。 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;C &#x1f69a;代码仓库&#xff1a;小小unicorn的代码仓库&…

【leetcode 力扣刷题】哈希表初尝试

哈希表 刷题初尝试 哈希表基础知识242. 有效的字母异位词383. 赎金信49. 字母异位词分组438. 找到字符串中所有字母异位词 哈希表基础知识 哈希表是一种数据结构&#xff0c;也叫散列表。哈希表中存储的是键值对&#xff0c;即(key&#xff0c;value)&#xff0c;根据key直接查…

VSCode调试STL不显示内容,string显示Converting character sets: Invalid argument.以及vector无内容问题

我的经历 事情的经过是这样的&#xff1a;众所周知&#xff0c;VSCode调试不支持中文路径&#xff0c;原因在于GDB不支持&#xff0c;于是我百度了一下有无解决方案&#xff0c;然后就找到一篇文章说设置一个什么什么“Beta版&#xff1a;使用Unicode UTF-8 提供全球语言支持”…

STL容器适配器之<priority_queue>

文章目录测试环境priority_queue介绍头文件模块类定义对象构造元素访问元素插入和删除容器大小迭代器其他函数测试环境 系统&#xff1a;ubuntu 22.04.2 LTS 64位 gcc版本&#xff1a;11.3.0 编辑器&#xff1a;vsCode 1.76.2 priority_queue介绍 容器适配器。支持在末端插入…

C++ STL set<int> s.find() ==s.end()

set.find() 函数原型&#xff1a; iterator find(const key_type& __x); const_iterator find(const key_type& __x) const;如果s.find()要找的值在set中则返回一个指向该值的迭代器&#xff0c; int main() {set<int> s1;s1.insert(10);s1.insert(12);s1.insert…

C++:string类模拟实现

C&#xff1a;string类模拟实现 成员变量构造和析构容量相关1.获取容器大小(_size)和容量(_capacity)2.扩容(reserve)3.更改容器大小 修改相关1.尾插2.指定位置插入3.指定位置删除4.清空5.交换两个对象 比较相关访问相关迭代器相关查找相关其它成员函数1.截取子串2.取得C格式字…

STL sort排序算法

在很多应用中&#xff0c;排序都是至关重要的&#xff0c;而且很多 STL 算法也只适用于有序对象序列。定义在 algorithm 头文件中的函数模板 sort<Iter>() 默认会将元素段排成升序&#xff0c;这也就意味着排序的对象的类型需要支持 < 运算符。 对象也必须是可交换的…

STL all_of、any_of及none_of算法

algorithm 头文件中定义了 3 种算法&#xff0c;用来检查在算法应用到序列中的元素上时&#xff0c;什么时候使谓词返回 true。这些算法的前两个参数是定义谓词应用范围的输入迭代器&#xff1b;第三个参数指定了谓词。检查元素是否能让谓词返回 true 似乎很简单&#xff0c;但…

STL——排序和通用算法

一 前言 STL算法部分主要由头文件<algorithm>,<numeric>,<functional>组成。要使用 STL中的算法函数必须包含头文件<algorithm>&#xff0c;对于数值算法须包含<numeric>&#xff0c;<functional>中则定义了一些模板类&#xff0c;用来…

STL(七):stack 与 queue

好久没有写过新的内容了。主要是最近真的没有时间。 好吧&#xff0c;这次介绍一下栈与队列的内容。 stack 先理一下之前写过的容器&#xff1a; vectordequelist 这些都是序列式容器&#xff0c;但是使用了不同的数据结构来实现。 栈的特性&#xff0c;就是先进后出&…

C++ STL (标准模板库) 详细内容讲解

C标准库&#xff08;Standard Template Library&#xff0c;STL&#xff09; 里面有很多常用的数据结构和算法的模板&#xff0c;可直接使用。 容器&#xff08;container&#xff09;&#xff1a;是用于存放数据的类模板。 顺序容器 顺序容器有以下三种&#xff1a;可变长…

C++ 使用STL时自定义比较函数cmp

以priority_queue的用法为例 方法一 ********************************方法一 struct Node {int x,y;bool operator <(Node a) const { //必须加constreturn y < a.y;}bool operator >(Node a) const { //必须加constreturn y > a.y;} }; // priority_q…

187. 重复的DNA序列——附unordered_map基本内容

class Solution { public:vector<string> findRepeatedDnaSequences(string s) {unordered_map<string, int> map;vector<string> vecStr;if(s.size()<10) //样例不一定长度大于10return vecStr;for(int i 0; i < s.size() - 10; i){ //计算每一…

【C++】C++11中比较重要的内容介绍

C11 前言正式开始统一的初始化列表{ }初始化对象{ }为容器初始化赋值运算符重载也支持{} 声明autodecltypenullptr STL中一些变化arrayforward_listunordered_map 和 unordered_set 右值引用表达式左值和右值左值右值 右值引用的使用场景移动构造和移动赋值重载右值分类移动构造…

【C++之容器篇】造轮子:模拟实现vector类

目录前言一、项目结构1. vector的简介2. 项目结构二、vector的底层结构三、默认成员函数1. 构造函数(1)无参构造函数2. 拷贝构造函数3. 析构函数4. 赋值运算符重载函数四、迭代器1. 普通对象的正向迭代器2. const 对象的正向迭代器五、容量接口1. size()2. capacity()3. reserv…

PAT B1052 卖个萌 (20 分)

字符串模拟题&#xff0c;主要考察了STL容器string和vector的使用&#xff0c;当然也可以用char和数组来实现&#xff0c;但是会非常麻烦。。。 如果出现段错误&#xff0c;注意一下输入序号不合理的判断&#xff08;大于总长度或者小于1&#xff09; #include <iostream&g…

STL转GLTF【在线工具】

3DConvert 是一个可以进行3D模型格式转换的在线工具&#xff0c;支持多种3D模型格式进行在线预览和互相转换。 1、STL与GLTF格式简介 STL&#xff08;Stereo Lithography&#xff09;文件是一种用于3D打印的文件格式。它是由3D Systems公司开发的一种二进制文件格式&#xff0…

vector高效删除

vector高效删除 1、使用erase:每次删除都要移动后面的元素 2、使用remove_if 3、stable_partition 4、运行时间比&#xff1a;630:1:2.5 #include <iostream> #include <algorithm> #include<vector> #include<ctime> #include<iterator>us…

笔记(七)——queue容器的基础理论知识

queues是队列容器&#xff0c;元素遵循先进先出的顺序。头文件&#xff1a;#include<queue>一、queue容器的对象构造方法queue采用模板类实现默认构造例如queue<T> q&#xff1b;#include<iostream> #include<queue> using namespace std; int main() …

【C++】适配器模式 - - stack/queue/deque

目录 一、适配器模式 1.1迭代器模式 1.2适配器模式 二、stack 2.1stack 的介绍和使用 2.2stack的模拟实现 三、queue 3.1queue的介绍和使用 3.2queue的模拟实现 四、deque&#xff08;不满足先进先出&#xff0c;和队列无关&#xff09; 4.1deque的原理介绍 4.2dequ…

单向链表模板

#pragma once#include <windows.h> #include <assert.h>/************************************************************************/ /* C实现单向链表模板 情形不同&#xff0c;用不同代码 */ /*******************************************************…

STL源码剖析中rotate算法的说明

在《STL源码剖析》中&#xff0c;对于rotate算法没有很好地解释&#xff0c;__rotate_cycle是如何发挥作用的&#xff0c;其中很值得研究。 SGI STL的rotate函数是将一个序列[first,last)的前半部分[first,middle)和后半部分[middle,last)进行调换。整个算法分为3种不同实现。…

STL partition分割算法

在序列中分区元素会重新对元素进行排列&#xff0c;所有使给定谓词返回 true 的元素会被放在所有使谓词返回 false 的元素的前面。这就是 partition() 算法所做的事。 partition 的前两个参数是定义被分区序列范围的正向迭代器&#xff0c;第三个参数是一个谓词。下面展示如何…

STL swap_ranges交换序列算法

可以用 swap_ranges() 算法来交换两个序列。这个算法需要 3 个正向迭代器作为参数。前两个参数分别是第一个序列的开始和结束迭代器&#xff0c;第三个参数是第二个序列的开始迭代器。显然&#xff0c;这两个序列的长度必须相同。这个算法会返回一个迭代器&#xff0c;它指向第…

PAT乙级真题 1080 MOOC期终成绩 C++实现

题目 对于在中国大学MOOC&#xff08;http://www.icourse163.org/ &#xff09;学习“数据结构”课程的学生&#xff0c;想要获得一张合格证书&#xff0c;必须首先获得不少于200分的在线编程作业分&#xff0c;然后总评获得不少于60分&#xff08;满分100&#xff09;。总评成…

list用法深度解析,一篇文章弄懂list容器各种操作

&#x1f4cb; 前言 &#x1f5b1; 博客主页&#xff1a;在下马农的碎碎念✍ 本文由在下马农原创&#xff0c;首发于CSDN&#x1f4c6; 首发时间&#xff1a;2023/08/10&#x1f4c5; 最近更新时间&#xff1a;2023/08/10&#x1f935; 此马非凡马&#xff0c;房星本是星。向前…

C++STL剖析(八)—— unordered_set和unordered_multiset的概念和使用

文章目录前言1. unordered_set的介绍和使用&#x1f351; unordered_set的构造&#x1f351; unordered_set的使用&#x1f345; insert&#x1f345; find&#x1f345; erase&#x1f345; size&#x1f345; empty&#x1f345; clear&#x1f345; swap&#x1f345; count…

C++ | STL空间适配器

目录 一.内存池可能带来的问题 二.空间配置器code 三.set_new_handler(new_handler new_p) 四.重定位new 五.空间配置器的分类 一.内存池可能带来的问题 我们知道容器的底层都是数据结构&#xff0c;如果我们在表层对一个容器频繁的进行插入或删除元素&#xff0c;也就是…

C++STL剖析(六)—— set和multiset的概念和使用

文章目录&#x1f31f; 前言&#x1f351; 树型结构和哈希结构&#x1f351; 键值对1. set的介绍和使用&#x1f351; set的模板参数列表&#x1f351; set的构造&#x1f351; set的使用&#x1f345; insert&#x1f345; find&#x1f345; erase&#x1f345; swap&#x1…

【Linux】线程终结篇:线程池以及线程池的实现

linux线程完结 文章目录 前言一、线程池的实现二、了解性知识 1.其他常见的各种锁2.读者写者问题总结 前言 什么是线程池呢&#xff1f; 线程池一种线程使用模式。线程过多会带来调度开销&#xff0c;进而影响缓存局部性和整体性能。而线程池维护着多个线程&#xff0c;等待着…

STL源码学习(3)- vector

文章首发于&#xff1a;My Blog 欢迎大佬们前来逛逛 文章目录1. vector的迭代器2. vector的数据类型3. vetor的空间配置器4. vector的构造函数5. vector的销毁与析构4. vector对元素的操作4.1 pop_back4.2 erase4.3. clear4.4 insert*4.5 push_bcak*1. vector的迭代器 vector维…

c++判断vector中是否存在特定元素的方法

简介 常常需要在vector中查找元素是否存在&#xff0c;或者确定元素的个数。但vector未提供相关的成员函数。 这里不讨论手写for遍历的方法。无论从工作量还是效率方面&#xff0c;都应该优先选用STL算法。 注意&#xff1a;对于任意的vector&#xff0c;查找某个元素需要耗费…

一、Vector向量容器

简介&#xff1a;Vector向量容器可以简单的理解为一个数组&#xff0c;它的下标也是从0开始的&#xff0c;也就是说&#xff0c;如果vector容器的大小是n&#xff0c;那么&#xff0c;元素的下标是0~n-1。使用时可以不用确定大小。vector具有内存自动管理的功能&#xff0c;对于…

10.1 C++ STL 模板适配与迭代器

STL&#xff08;Standard Template Library&#xff09;标准模板库提供了模板适配器和迭代器等重要概念&#xff0c;为开发者提供了高效、灵活和方便的编程工具。模板适配器是指一组模板类或函数&#xff0c;它们提供一种适配机制&#xff0c;使得现有的模板能够适应新的需求。…

STL search搜索算法

在查找序列的子序列方面&#xff0c;search() 算法和 find_end() 算法相似&#xff0c;但它所查找的是第一个匹配项而不是最后一个。 和 find_end() 算法一样&#xff0c;它也有两个版本&#xff0c;第二个版本接受用来比较元素的谓词作为第 5 个参数。可以用 search() 来验证…

C++ STL替换string中的空格(其他字符)

//替换字符串中指定的字符 //先find该字符&#xff0c;删除元素&#xff0c;最后插入元素 void string_replace(string &st1, char c) {string::iterator tmp find(st1.begin(), st1.end(), c);while (tmp ! st1.end()){auto x st1.erase(tmp);st1.insert(x, *);st1.inse…

【STL源码剖析】总结笔记(8):红黑树(RB-tree)探究

00 写在前面 前面已经把序列式容器&#xff08;sequence&#xff09;看的差不多了&#xff0c;接下来我们来看看关联式容器&#xff08;associative&#xff09;。 就像我们在第一篇中说的一样&#xff0c;关联式容器分为set和map两大类&#xff0c;以及他们对应的衍生体mult…

shared_ptr子类指针转换成父类指针

假设有如下应用场景: class Base { public:void addChild(std::shared_ptr<Base>& child){...} }class Derived : public Base {}int main() {Base a;std::shared_ptr<Derived> b std::make_shared<Derived>();a.addChild(b); // Error } 该代码中声…

(C++)STL之面向对象实验:小红花(运用bitset)

相关知识点运用&#xff1a; 如下图所示&#xff0c;为学生的出勤情况&#xff08;从左至右&#xff0c;每一列表示一个学生&#xff0c;1~25号&#xff09; 下图是学生出勤情况表数据 &#xff08;可直接复制到student.txt文件中&#xff09; 1111111111111111111111111 1110…

标准模板库STL——deque和list

deque概述 deque属于顺序容器&#xff0c;称为双端队列容器 底层数据结构是动态二维数组&#xff0c;从整体上看&#xff0c;deque的内存不连续 初始数组第一维数量为2&#xff0c;必要时进行2倍扩容 每次第一维扩容后&#xff0c;原来数组第二维元素从新数组下标为OldSize/2的…

【STL源码剖析】总结笔记(9):set/multiset与map/multimap

00 写在前面 【STL源码剖析】总结笔记&#xff08;8&#xff09;&#xff1a;红黑树&#xff08;RB-tree&#xff09;探究 这篇的内容在红黑树的基础上就显得简单很多了。set和map需要了解其结构&#xff0c;在实际使用STL过程中最好可以做到轻松使用。 因为是红黑树作为底层…

STL基础系列之--list

链表&#xff08;list&#xff09;双向链表容器不支持随机访问&#xff0c;访问链表元素需要指出从链表的某个端点开始&#xff0c;插入和删操作所花费的时间是固定的&#xff0c;和该元素的位置无关。 在任何位置插入和删除动作都很快&#xff0c;不像vector只在末尾进行操作…

决策树学习 之 ID3 C++STL代码实现

很久没写含这么多stl的程序了&#xff0c;很故意的用set&#xff0c;map&#xff0c;vector&#xff0c;熟手一下。 也记录一下吧&#xff0c;虽然写得比较渣。 三个文件&#xff1a; 测试数据&#xff1a;data.txt [plain] view plaincopyD1 Sunny Hot High …

洛谷P1638 逛画展(双向队列)

在算法标签中搜了单调队列&#xff0c;搜到了这道题&#xff0c;但实际做起来发现并不是个单调队列&#xff0c;只是个双向队列的应用罢了… 朴素算法是暴力枚举&#xff0c;时间复杂度是O(n)&#xff0c;用双向队列优化后可以降为O(n)。 首先我们设置num[i]&#xff0c;表示第…

2. STL容器结构与分类

注&#xff1a;图中黄色标注的结构为C11新支持的

C++ STL(一)快速入门

转自&#xff1a;https://www.cnblogs.com/skyfsm/p/6934246.html C STL中最基本以及最常用的类或容器无非就是以下几个&#xff1a; stringvectorsetlistmap 下面就依次介绍它们&#xff0c;并给出一些最常见的最实用的使用方法&#xff0c;做到快速入门。 string 首先看看…

【C++学习手札】模拟实现vector

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;くちなしの言葉—みゆな 0:37━━━━━━️&#x1f49f;──────── 5:28 &#x1f504; ◀️ ⏸ ▶️ ☰…

boost::asio::io_service::work

问题 当有任务的时候&#xff0c;run函数会一直阻塞&#xff1b;但当没有任务了&#xff0c;run函数会返回&#xff0c;所有异步操作终止。 客户端程序中&#xff0c;如果我想连接断开后重连&#xff0c;由于连接断开了&#xff0c;run会返回&#xff0c;当再次重连的时候&…

C++ STL常用算法(详解)

C常用算法 C sort()排序函数用法详解 C STL 标准库提供有很多实用的排序函数&#xff0c;如表 1 所示。通过调用它们&#xff0c;我们可以很轻松地实现对普通数组或者容器中指定范围内的元素进行排序。 ​ 表 1 C STL 排序函数 函数名用法sort (first, last)对容器或普通数…

【C++ STL】容器适配器 Container adapter(stack queue priority_queue)

文章目录一、STL - stack1.1 stack 的介绍1.2 stack 的使用1.3 stack 的模拟实现二、STL - queue 的介绍2.1 queue 的介绍2.2 queue 的使用2.3 queue 的模拟实现三、STL - priority_queue3.1 priority_queue 的介绍3.2 priority_queue 的使用3.3 仿函数&#xff08;⭐重要&…

标准模板库STL——vector

目录 vector概述 相关操作 常用方法 代码段 相关操作 辨析reserve和resize vector概述 vector属于顺序容器&#xff0c;称为向量容器 底层数据结构是动态一维数组&#xff0c;vector的内存连续&#xff0c;必要时进行2倍扩容 2倍扩容的步骤依次是开辟新内存、拷贝构造新对…

解密list的底层奥秘

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;强烈推荐优质专栏: &#x1f354;&#x1f35f;&#x1f32f;C的世界(持续更新中) &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶 &#x1f43b;推荐专栏2: &#x1f354;…

标准模板-STL简介

俗话说的好&#xff1a;工欲善其事必先利其器&#xff0c;而C为我们提供了一个高效的C程序库即&#xff1a;STL&#xff08;Standard Template Library&#xff09;&#xff0c;STL是所有C编译器和所有操作系统平台都支持的一种库 STL组成 容器迭代器算法函数对象适配器空间配…

【数据结构】平衡二叉树

目录 一、平衡二叉树的介绍 二、平衡二叉树的插入 1、平衡二叉树的插入步骤 2、平衡二叉树的旋转 2.1左单旋 2.2右单旋 2.3左右双旋 2.4右左双旋 三、平衡二叉树的删除&#xff08;略&#xff09; 四、个人对平衡二叉树见解 五、平衡二叉树整体代码 一、平衡二叉树的…

STL中的stack、queue以及deque

目录 一、关于deque容器&#xff08;双端队列&#xff09; 1、deque的底层实现 2、deque的缺点 3、关于stack与squeue默认使用deque容器 二、stack简介 1、stack的成员函数&#xff08;接口&#xff09; 2、stack的模拟实现 三、queue简介 1、queue的成员函数&#xff08…

【C++干货铺】C++11新特性——lambda表达式 | 包装器

个人主页点击直达&#xff1a;小白不是程序媛 C系列专栏&#xff1a;C干货铺 代码仓库&#xff1a;Gitee 目录 C98中的排序 lambda表达式 lambda表达式语法 表达式中的各部分说明 lambda表达式的使用 基本的使用 [var]值传递捕捉变量var ​编辑 [&var]引用传递捕…

17 标准模板库STL之list

基础知识 1、list是由双向链表实现的,这也意味着,其内存空间是不连续的。因此,list不支持随机访问,没有提供[]操作符重载和at()函数,迭代器只能进行++和--操作,不能进行+n和-n操作。由于底层使用链表实现,list在任意位置插入和移除元素都非常高效。list适用于需要经常进…

【C++】STL常用容器总结之四:链表list

5、链表list List是每个节点包含前驱指针、后继指针和数据域三个部分的双向链表。List不提供随机存取&#xff0c;访问元素需要按顺序走到需存取的元素&#xff0c;时间复杂度为O(n)&#xff0c;在list的任何位置上执行插入或删除操作都非常迅速&#xff0c;只需在list内部调整…

STL 容器应用场景

STL中常见容器&#xff0c;主要包括如下几种&#xff1a; vector&#xff0c; list&#xff0c; deque&#xff0c;set&#xff0c;multiset&#xff0c; map&#xff0c; multimap。选用合适的容器&#xff0c;对编写高效的程序&#xff0c;简洁的代码有重要意义&#xff1b;…

STL copy_backward复制算法

不要被 copy_backward() 算法的名称所误导&#xff0c;它不会逆转元素的顺序。它只会像 copy() 那样复制元素&#xff0c;但是从最后一个元素开始直到第一个元素。 copy_backward() 会复制前两个迭代器参数指定的序列。第三个参数是目的序列的结束迭代器&#xff0c;通过将源序…

STL copy_n复制算法

copy_n() 算法可以从源容器复制指定个数的元素到目的容器中。第一个参数是指向第一个源元素的输入迭代器&#xff0c;第二个参数是需要复制的元素的个数&#xff0c;第三个参数是指向目的容器的第一个位置的迭代器。这个算法会返回一个指向最后一个被复制元素的后一个位置的迭代…

C++基础学习之6 - STL解构

在C编程里面&#xff0c;STL 是必不可少的&#xff0c;我们先列出来常用的几种容器&#xff1a; vector&#xff0c;list&#xff0c;Map&#xff0c;set&#xff0c;deque&#xff0c;queue vector vector是一种动态数组&#xff0c;其内容在内存中是连续存放的&#xff0c;正…

【C++STL基础入门】vector向量基础使用

文章目录 前言一、头文件二、定义vector向量三、构造函数四、属性函数1.容量2.大小 总结 前言 CSTL&#xff08;Standard Template Library&#xff09;是C标准库中的一部分&#xff0c;提供了一组通用的模板容器和算法&#xff0c;以及一些有用的功能。其中&#xff0c;vecto…

【STL源码剖析】总结笔记(4):幕后功臣--分配器(allocator)

00 写在前面 【STL源码剖析】总结笔记&#xff08;3&#xff09;&#xff1a;vector初识 在前面对于vector的分析中&#xff0c;我们遇到了allocator template<class T,class Allocalloc>分配器是贯穿所有容器的存在&#xff0c;即使我们在使用各个容器时并不会用到它…

【C++学习手札】模拟实现list

​ &#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;リナリア—まるりとりゅうが 0:36━━━━━━️&#x1f49f;──────── 3:51 &#x1f504; ◀️ ⏸ ▶️…

【C++】 使用红黑树模拟实现STL中的map与set

文章目录 前言1. 对之前实现的红黑树进行一些补充和完善1.1 析构1.2 查找 2. STL源码中map和set的实现3. 改造红黑树封装map和set3.1 红黑树结构修改3.2 map、set的结构定义3.3 insert的封装3.4 insert测试3.5 发现问题并解决3.6 红黑树迭代器实现3.7 封装set和map的迭代器并测…

C++复习(初识STL)

C复习(初识STL) 本复习主要用于《传智播客的C程序设计教程》教材的复习 1、STL简介 STL简称标准模板库&#xff0c;它是所有C编译器和操作系统平台都支持的一种库。 STL的内容从广义上分为三个部分&#xff1a;容器、迭代器、算法。 STL的一个基本理念就是将数据和操作分离…

CodeForces 522A A. Reposts Map容器的使用

这个题主要就是看你会不会用Map容器了。。。 给你 一些字符串 如下 B XX A C XX A D XX A E XX B 让你计算从A开始最多可以沿着某一条路径传播多少个人 代码如下&#xff1a; #include <iostream> #include <cstdio> #include <queue> #include <c…

C++ STL 简单记录

C STL 简单记录1&#xff0c;STL提供三种类型的组件&#xff1a;容器、迭代器、算法。 容器&#xff1a; 顺序容器&#xff08;vector、list、deque、string等&#xff09;是一系列元素的有序集合&#xff1b; 关联容器&#xff08;set、multiset、map、multimap&#xff09;包…

STL——查找算法及实例

一 前言 STL算法部分主要由头文件<algorithm>,<numeric>,<functional>组成。要使用 STL中的算法函数必须包含头文件<algorithm>&#xff0c;对于数值算法须包含<numeric>&#xff0c;<functional>中则定义了一些模板类&#xff0c;用来声明…

【AcWing算法基础课】第二章 数据结构(部分待更)

文章目录 前言课前温习一、单链表核心模板1.1题目描述1.2思路分析1.3代码实现 二、双链表核心模板2.1题目描述2.2思路分析2.3代码实现 三、栈核心模板3.1题目描述3.2思路分析3.3代码实现 四、队列核心模板4.1题目描述4.2思路分析4.3代码实现 五、单调栈核心模板5.1题目描述5.2思…

【C++】STL 容器 vector

vector是大小可变的序列容器。本质上来讲&#xff0c;vector是采取动态数组来存储数组的&#xff0c;大小可变。 vector的基本操作&#xff1a; 1. 容量 2. 修改 push_back()可以在末尾插入新元素 insert()可以在任意位置插入新元素 pop_back()可以删除末尾的元素 3. 迭代器 说…

【STL源码剖析】总结笔记(2):容器(containers)概览

00 写在前面 容器&#xff08;containers&#xff09;是STL的重要组成部分之一&#xff0c;也是非常值得我们深入研究的部分。各种vector、map、set的使用极大地提高了我们解决问题的效率。 每个容器内部都有着其独特的实现方式以及一些需要我们了解的要点&#xff0c;这些会…

【STL源码剖析】总结笔记(11):算法(algorithm)初识

00 写在前面 算法&#xff0c;本质上就是解决问题的方法。 我们经常见面的数据结构和算法系列&#xff0c;其实数据结构就是我们所说的STL中的容器&#xff0c;而算法就是解决各类问题的方法。 在STL中说算法&#xff0c;更侧重的是算法的实现剖析而不是用法&#xff0c;这也…

STL- 常用算法-查找

目录 1 find&#xff08;查找元素 &#xff09; 功能描述&#xff1a; 查找指定元素&#xff0c;找到返回指定元素的迭代器&#xff0c;找不到返回结束迭代器end() 函数原型&#xff1a; find(iterator beg, iterator end, value); // 按值查找元素&#xff0c;找到返回指定…

【C++STL基础入门】stack栈的增删查等操作的使用

文章目录 前言一、stack元素访问1.1 元素访问之top 二、stack修改2.1 stack修改之push()函数2.2 stack修改之pop()函数2.3 stack修改之swap()交换函数2.4 stack修改之emplace()在顶部原位构造元素 总结 前言 在C的标准模板库(STL)中&#xff0c;stack&#xff08;栈&#xff0…

STL容器:string类的简介与使用

传统的C 没有专门的字符串类型&#xff0c;需要使用常量字符串或者字符数组来使用在实际运用中&#xff0c;一般使用字符串函数来处理 string类基本操作 string是表示字符串的字符串类该类的接口与常规容器的接口基本相同&#xff0c;再添加了一些专门用来操作string的常规操…

[C国演义] 第十五章

第十五章 最长湍流子数组环绕字符串中唯⼀的⼦字符串 最长湍流子数组 力扣链接 子数组 ⇒ dp[i]的含义: 以arr[i] 结尾的所有子数组中的最长湍流子数组的长度 子数组 ⇒ 状态转移方程根据 最后一个位置来划分&#x1f447;&#x1f447;&#x1f447; 初始化: 都初始化为…

Bin Packing Problem (线段树+multiset)

原题链接 目录题目&#xff1a;输入输出样例&#xff1a;题目大意&#xff1a;解题思路&#xff1a;代码&#xff1a;碎碎念&#xff1a;题目&#xff1a; 输入输出样例&#xff1a; 题目大意&#xff1a; 装箱问题。给你含有nnn个数字的一个数组&#xff0c;每个数字代表物品…

【C++】 容器 vector初始化二维数组

使用vector初始化二维数组&#xff0c;并且获得二维索引的方法&#xff1a;

#剑指offer数组题 #C++vector/for循环break #string类

本文记录&#x1f5e1;☞Offer上数组的相关题目&#xff0c;我的学习过程。希望我能常常温习&#xff0c;进而写出更好的文章。 01 数组中重复的数字&#xff08;牛客网&#xff09; 牛客网博客链接 思路 数组的下标对解数组的题目至关重要。 本道数组长度为n,限制数组中的数…

《C++程序设计教程》——初识STL

初识STL 标准模板库简称STL 8.1 STL简介 STL的内容从广义上讲分为三个主要部分&#xff1a;容器、迭代器、算法。 在C的标准中&#xff0c;STL被组织在13个头文件中&#xff1a;< algorithm>、< deque>、< functional>、< iterator>、< vector>…

【c++手撕STL】之迭代器

迭代器定义 在C STL(Standard Template Library&#xff0c;标准模板库)中&#xff0c;迭代器是一个非常重要的组成部分。迭代器像是一个指针&#xff0c;负责在容器的元素之间移动&#xff0c;并且能够访问到容器的元素。 C STL提供了几种类型的迭代器&#xff0c;每种迭代器…

【C++】异常抛出变量的生命周期

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。搜…

STL中的remove与erase

用algorithm中的remove算法删除容器中的元素&#xff0c;并不会改变容器的元素数量&#xff0c;只是会用remove后面的元素覆盖remove地方的元素 list<int> coll1;for(int i 1;i<6;i){coll1.push_back(i);coll1.push_front(i);}cout<<"prc:";copy(col…

【C++】STL---list

STL---list 一、list 的介绍二、list 的模拟实现1. list 节点类2. list 迭代器类&#xff08;1&#xff09;前置&#xff08;2&#xff09;后置&#xff08;3&#xff09;前置- -、后置- -&#xff08;4&#xff09;! 和 运算符重载&#xff08;5&#xff09;* 解引用重载 和 …

STL初识,for_each

目录 1.STL初识 1.stl的诞生 2.stl基本概念 3.stl六大组件 4.stl中容器&#xff0c;算法&#xff0c;迭代器 2.vector for_each 代码示例&#xff1a; 容器嵌套容器 1.STL初识 1.stl的诞生 2.stl基本概念 3.stl六大组件 4.stl中容器&#xff0c;算法&#xff0c;迭…

【C++】vector基本接口介绍

vector接口目录&#xff1a; 一、vector的初步介绍 1.1vector和string的联系与不同 1.2 vector的源码参数 二、vector的四种构造&#xff08;缺省填充元素迭代器拷贝构造&#xff09; 三、vecto的扩容操作与机制 3.1resize&#xff08;老朋友了&#xff0c;不会就去看str…

*UVA 11988 破损的键盘 Broken Keyboard (a.k.a. Beiju Text)

题目描述 用数组模拟链表&#xff0c;对于每一个字符存一个next值表示下一个元素的下标 对于字符[&#xff0c;将当前下标改为0 对于字符]&#xff0c;将当前下标改为last就是我们存的最后的下标 对于其他字符&#xff0c;更新next即可 #include <bits/stdc.h> using…

obj convert to stl(java)

FileFormat obj 格式规范&#xff1a;stl 格式规范&#xff1a;https://docs.fileformat.com/cad/stl/ Main 导入 aspose&#xff0c;Aspose.3D for Java API是为创建、编辑、操作和保存3D格式而构建的。它使Java应用程序能够与3D文档连接&#xff0c;而无需在计算机上安装…

STL-常用容器-Vector容器(数组)

1 vector基本概念 功能&#xff1a; vector数据结构和数组非常相似&#xff0c;也称为单端数组 vector与普通数组区别&#xff1a; 不同之处在于数组是静态空间&#xff0c;而vector可以动态扩展 动态扩展&#xff1a; 并不是在原空间之后续接新空间&#xff0c;而是找更大…

STL容器:vector的简介与使用

vector的介绍 vector是表示可变大小数组的序列容器。就像数组一样&#xff0c;vector也采用连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问&#xff0c;和数组一样高效。但是又不像数组&#xff0c;它的大小是可以动态改变的&#xff0c;而且它的大…

2.5 使用SolidWorks转换STL格式为OBJ文件格式

1. 说明&#xff1a; 使用SW进行三维模型建模&#xff0c;一般应用在机械工程领域中。将模型保存成STL格式后&#xff0c;转换为.obj文件&#xff0c;才能进一步转换为mesh文件&#xff0c;供QT中的3D控件进行使用&#xff0c;本文章记录一些格式转换步骤和关键点&#xff0c;…

【C++STL基础入门】排序和遍历容器

文章目录 前言使用前须知头文件 一、for_each算法1.1 for_each是什么1.2 函数原型1.3 示例代码1:将容器中的每个元素打印出来1.4 示例代码2&#xff1a;将容器中的每个字符串转换为大写形式 二、sort算法2.1 sort算法是什么&#xff1f;2.2 函数原型2.3 示例代码1&#xff1a;按…

Term14:使用reserve避免不必要的重新分配

对于STL容器&#xff0c;最了不起的一点就是&#xff0c;它们会自动增长以便容纳下你放入其中的数据。当然&#xff0c;这里有一个前提条件&#xff1a;你没有超出它们的最大限制条件&#xff08;我们可以用名为max_size()的成员函数来知道这一最大限制数量&#xff09; 在Vs2…

Term14:使用reserve避免不必要的重新分配

对于STL容器&#xff0c;最了不起的一点就是&#xff0c;它们会自动增长以便容纳下你放入其中的数据。当然&#xff0c;这里有一个前提条件&#xff1a;你没有超出它们的最大限制条件&#xff08;我们可以用名为max_size()的成员函数来知道这一最大限制数量&#xff09; 在Vs2…

STL——string容器的push_back()和append()的区别

string中的push_back()和append()函数都是向string的结尾插入&#xff0c;但push_bach()只能插入单个字符char&#xff0c;而append可以插入string。 【举例】 #include <iostream> #include <string>using namespace std;int main() {string s1 "I am a st…

STL工具库使用解析系列之一 STL::map

STL是C提供标准模块库的缩写&#xff0c;其中涉及多诸多常用的数据结构和算法&#xff0c;本文便是介绍map结构&#xff0c;一种和hash-table同样使用键值对的数据结构&#xff0c;但和哈希表常用数组实现不同&#xff0c;STL::map内核数据结构是红黑树&#xff0c;故而相比于h…

[C++随想录] 优先级队列的模拟实现

优先级队列的模拟实现 底层结构初始化向下调整 && 向上调整push && poptop && empty && size源码 底层结构 namespace muyu {template <class T, class Continer std::vector<T>, class Compare less<T> >class priority_…

C++【STL】之stack和queue学习

文章目录&#xff1a; 1. 容器适配器1.1 适配器的概念1.2 STL标准库中stack和queue的底层结构 2. 栈stack2.1 stack的使用2.2 stack模拟实现 3. 队列queue3.1 queue的使用3.2 queue模拟实现 1. 容器适配器 1.1 适配器的概念 适配器是一种设计模式(设计模式是一套被反复使用的…

C++【STL】之反向迭代器

反向迭代器 前面在vector和list的模拟实现中都有讲到正向迭代器&#xff0c;今天我们就来讲解一下反向迭代器的思想和模拟实现&#xff0c;在某些场景下还是很实用的&#xff0c;下面正文直接开始。 文章目录&#xff1a; 反向迭代器1. 反向迭代器结构2. 反向迭代器实现2.1 多…

从C语言到C++_21(模板进阶+array)+相关笔试题

目录 1. 非类型模板参数 1.1 array 1.2 非类型模板参数的使用场景 1.3 注意事项 2. 模板的特化 2.1 函数模板的特化 2.2 类模板的特化 2.3 全特化和偏特化(半特化) 3. 模板关于分离编译 4. 模板优缺点 5. 模板相关笔试题 本章完。 1. 非类型模板参数 对于函数模板…

18 标准模板库STL之deque

基础知识 1、deque是一个双端数组容器,可以同时在头部和尾部添加、移除元素。deque与vector类似,也支持随机访问,但vector是一整段的连续内存空间,而deque是一段一段的连续内存空间。每一段连续内存空间称为一个deque块,所有deque块由一个map进行管理。 2、deque在头部和尾…

专攻C++真题合集(1)

C语言作为一门广泛使用的编程语言&#xff0c;已经成为了许多IT领域从业者的必备技能之一。为了帮助大家更好地掌握C语言&#xff0c;本文将为大家提供一些专门的C真题。 1. 指针 题目一&#xff1a;请编写一个函数&#xff0c;函数名为swap&#xff0c;交换两个整数型变量的…

unordered_map和unordered_set的源码模拟实现

在源码中&#xff0c;这两个STL容器都是共用一个框架的所以&#xff0c;我们就用一个框架实现两个 容器&#xff0c;代码细节都在注释上 HashTable.h #pragma once #define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> #include <vector> #include <strin…

什么是关联式容器和序列时容器?二者的区别是什么?

关联式容器和序列容器都是C STL中的容器&#xff0c;它们主要的区别在于其存储内部元素的方式不同。 序列容器是按照元素插入的顺序来存储元素的&#xff0c;也就是说&#xff0c;元素在容器中的位置与其被插入的先后顺序是一致的。例如&#xff0c;vector、list 和deque都是序…

深入浅出C++ ——容器适配器

文章目录一、容器适配器二、deque类简介1. deque的原理2. deque迭代器3. deque的优点和缺陷4. 为什么选择deque作为stack和queue的底层默认容器一、容器适配器 适配器的概念 适配器是STL六大核心组件之一&#xff0c;它是一种设计模式&#xff0c;该种模式是将一个类的接口转换…

STL-常用容器-stack容器(栈)

1 stack 基本概念 概念&#xff1a;stack是一种先进后出(First In Last Out,FILO)的数据结构&#xff0c;它只有一个出口 栈中只有顶端的元素才可以被外界使用&#xff0c;因此栈不允许有遍历行为 栈中进入数据称为 --- 入栈 push 栈中弹出数据称为 --- 出栈 pop 2 stack 常…

【C++干货铺】STL中set和map的介绍和使用

个人主页点击直达&#xff1a;小白不是程序媛 C系列专栏&#xff1a;C干货铺 代码仓库&#xff1a;Gitee 目录 序列式容器 关联式容器 键值对 树形结构的关联式容器 set set的介绍 set的使用 set的模板参数列表 set的构造 ​编辑 set的容量 set的删除和查找 mult…

STL容器之<unordered_set>

文章目录测试环境unordered_set介绍头文件模块类定义对象构造初始化元素访问元素插入和删除元素查找容器大小迭代器元素交换其他函数测试环境 系统&#xff1a;ubuntu 22.04.2 LTS 64位 gcc版本&#xff1a;11.3.0 编辑器&#xff1a;vsCode 1.76.2 unordered_set介绍 关联式…

【C++】模板(template)进阶

文章目录一、非类型模板参数二、模板特化2.1 概念2.2 函数模板特化2.3 类模板特化① 全特化② 偏特化三、模板分离编译3.1 概念3.2 模板的分离编译① 程序编译&#xff08;⭐重要&#xff09;② 问题分析③ 解决方法四、总结一、非类型模板参数 模板参数分为「类型形参」与「非…

PAT甲级1056

1056. Mice and Rice (25) 时间限制30 ms内存限制65536 kB代码长度限制16000 B判题程序Standard作者CHEN, YueMice and Rice is the name of a programming contest in which each programmer must write a piece of code to control the movements of a mouse in a given map.…

【C++】STL常用容器总结之五:双端队列deque

6、双端队列deque 所谓的deque是”double ended queue”的缩写&#xff0c;双端队列不论在尾部或头部插入元素&#xff0c;都十分迅速。而在中间插入元素则会比较费时&#xff0c;因为必须移动中间其他的元素。双端队列是一种随机访问的数据类型&#xff0c;提供了在序列两端快…

STL sort源码剖析

STL sort源码剖析 STL的sort()算法&#xff0c;数据量大时采用Quick Sort&#xff0c;分段递归排序&#xff0c;一旦分段后的数据量小于某个门槛&#xff0c;为避免Quick Sort的递归调用带来过大的额外负荷&#xff0c;就改用Insertion Sort。如果递归层次过深&#xff0c;还会…

STL_set_集合

——————2018-4-14更新——————— set中判定一个元素是否存在除了用find, 还可以用count()函数 如果存在, 返回一, 如果不存在, 返回0. (元素的数量) set的排序规则, 使用cmp结构体 #include <iostream> #include <set> using namespace std;struct cm…

STL_vector_不定长数组

vector是STL中的一种容器, 是一种不定长的数组. 包含在vector头文件中 使用方式为 vector< int >vec; //定义了一个vec数组 vector< int > vec(10); //定义了元素数, 各元素都为0 有 size()函数 //返回数组元素数, 即数组大小 resize()函数 //重置数组大小 p…

stl使用中的经验(十四)--ptr_fun、mem_fun、mem_fun_ref

首先我们看个例子。 #include <iostream> #include <vector> #include <algorithm> #include <iterator> using namespace std;class Widget{public:Widget(int a) : m_a(a){}int value() const{return m_a;}bool test(){return m_a % 3;}private:i…

stl容器使用中的经验(七)--iterator 优于 const_iterator、reverse_iterator、const_reverse_iterator

1、iterator 优于 const_iterator、reverse_iterator、const_reverse_iterator 一般来说&#xff0c;标准stl容器都提供了4中迭代器。对于一个容器container<T>而言&#xff0c;iterator相当于 T* &#xff0c;const_iterator相当于 const T*&#xff1b;我们以map为例&…

stl容器使用中的经验(五)--不要随意修改set或者multiset的键

1、不要随意修改set或者multiset的键 对map和multimap来说&#xff0c;直接修改键会在编译器这一层报错。 map<_key, _value> m;m.bengin()->first 10; //编译失败主要是因为对于map和multimap来说&#xff0c;他们的元素类型是 pair<const _Key, _Tp>也…

stl容器使用中的经验(一)--stl容器的选择和基本概念

1、关于容器的两个概念 1、连续内存容器&#xff08;基于数组的容器&#xff09; 将其元素放在一块或多块&#xff08;动态分配&#xff09;的内存中&#xff0c;每块内存中有多个元素。当有新元素插入或者已有元素删除时&#xff0c;统一内存块中的其他元素要向前或向后移动…

浅析STL 谓词 + 仿函数 + 函数指针(c)

一&#xff1a;起因 &#xff08;0&#xff09;提到C STL&#xff0c;首先被人想到的是它的三大组件&#xff1a;Containers(容器), Iterators(迭代器), Algorithms(算法)。容器为用户提供了常用的数据结构(如&#xff0c;vector,list,deque,stack,map,multimap,set,multiset,…

[灌水]比STL::mapSTL::unordered_map效率高十倍的自写Hash_map

这个文章就是扯犊子用的,当然也附带源码. 本文内的hash_map基于我之前发布的哈希表源码,改进而来. 200万条数据,循环100次 也就是2亿次的覆盖or追加. 第一列的第一个窗口是STL容器的效率,第一列第二个窗口是自写Hash_map的效率 可以看到,速度相差十倍. 而最下面的那个窗口则是…

1060 Are They Equal (25分) STL「string」

原题链接 这道题真的值得好好品 从思路再到细节处理都挺妙的 特别注意点&#xff1a;会有前导0 思路 一、考虑数据本身 可以分为两种情况 第一种&#xff1a;0.a1a2a3… 第二种&#xff1a;b1b2b3…bm . a1a2a3 二、考虑两种情况的主体与指数部分 综上&#xff0c;整个过程可以…

【STL之前】[C++] string类 模拟实现 及 框架分析 ~

string类 模拟实现 上篇文章中介绍了 C的 string类 及 string类的接口 本篇文章着重 模拟实现 string类 及其各接口 string类的结构 string类 实质上其实就是一个提供了许多功能接口的字符串 但是 string类 除了字符串之外, 类中还提供了 表示字符串大小和容量的变量 所以…

详解C++STL容器系列(一)—— vector的详细用法和底层原理

目录一、介绍二、vector的创建和方法创建vector方法三、vector的具体用法3.1 遍历vector3.1.1 迭代器访问3.1.2 下标访问3.1.3 范围for循环3.2 vector 容量和大小3.3 vector 常用算法3.3.1 push_back、pop_back 和 emplace_back3.3.2 insert 和 emplace3.3.3 erase3.3.4 assign…

【C++】STL 容器 - map 关联容器 ③ ( map 容器常用 api 操作 | map 容器迭代器遍历 | map#insert 函数返回值处理 )

文章目录 一、map 容器迭代器遍历1、map 容器迭代器2、代码示例 二、map 容器插入结果处理1、map#insert 函数返回值处理2、代码示例 一、map 容器迭代器遍历 1、map 容器迭代器 C 语言中 标准模板库 ( STL ) 的 std::map 容器 提供了 begin() 成员函数 和 end() 成员函数 , 这…

【C++ STL】模拟实现 map 和 set(对一颗红黑树进行封装)

文章目录一、STL - map 和 set二、模拟实现 map 和 set2.1 改造红黑树的结构2.2 map 和 set 的迭代器2.2.1 红黑树的迭代器2.3 map 和 set 的插入2.4 map 的模拟实现2.5 set 的模拟实现一、STL - map 和 set 阅读STL源码就可以发现&#xff0c;其实 set 和 map 自己没有实现啥…

【C++】—— 模拟实现List

头文件List.h #include <iostream> #include <algorithm>//算法头文件 using namespace std;namespace CXY {template<class T>struct _ListNode //封装一个节点{_ListNode<T>* _prev;_ListNode<T>* _next;T _data;_ListNode(const T& valu…

【C++练级之路】【Lv.6】【STL】string类的模拟实现

文章目录 引言一、成员变量二、默认成员函数2.1 constructor2.2 copy constructor2.3 destructor2.4 operator 三、迭代器3.1 begin3.2 end 四、元素访问4.1 operator[ ] 五、容量5.1 size5.2 capacity5.3 reserve5.4 resize 六、修改6.1 push_back6.2 append6.3 operator6.4 i…

超详细STL之基于源码剖析vector实现原理及注意事项

本篇文章基于源码来剖析标准模板库中vector容器的实现原理及一些特殊注意事项。 说明一下&#xff0c;我用的是gcc7.1.0编译器&#xff0c;标准库源代码也是这个版本的。 多年以前面试的时候第一次被问到stl中vector的底层实现&#xff0c;那个时候的我真的很low&#xff0c;根…

【C++】map值自定义key,value排序(含ccfcsp第四次认证第二题演示和map遍历方法)

如何自定义map排序 sort仅仅支持pair&#xff0c;vector&#xff0c;数组等排序&#xff0c;不支持对map的排序 所以如果想用sort对map排序的话&#xff0c;只需要把map转换为vector即可&#xff1a; map<int,int>res; res[1]1,res[2]2,res[3]3; vector<pair<in…

C++STL剖析(四)—— stack和queue的概念和使用

文章目录1. stack的介绍2. stack的构造3. stack的使用&#x1f351; push&#x1f351; top&#x1f351; pop&#x1f351; empty&#x1f351; size&#x1f351; swap&#x1f351; emplace4. queue的介绍5. queue的构造6. queue的使用&#x1f351; push&#x1f351; size…

【STL】Vector剖析及模拟实现

✍作者&#xff1a;阿润菜菜 &#x1f4d6;专栏&#xff1a;C vector的常用接口 首先贴上&#xff1a;vector的文档介绍,以备查阅使用。 vector的基本框架&#xff1a; vector的成员变量分别是空间首部分的_start指针和最后一个元素的下一个位置的_finish指针&#xff0c;以…

C++ STL学习之【vector的使用】

✨个人主页&#xff1a; Yohifo &#x1f389;所属专栏&#xff1a; C修行之路 &#x1f38a;每篇一句&#xff1a; 图片来源 The power of imagination makes us infinite. 想象力的力量使我们无限。 文章目录&#x1f4d8;前言&#x1f4d8;正文1、默认成员函数1.1、默认构造…

【STL】list剖析及模拟实现

✍作者&#xff1a;阿润菜菜 &#x1f4d6;专栏&#xff1a;C 初识list 1. list基本概况 list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。list的底层是双向链表结构&#xff0c;双向链表中每个元素存储在互不相关的独立…

C++ 模板特化

非类型模板参数 定义&#xff1a;对于函数模板和类模板&#xff0c;模板参数并不局限于类型&#xff0c;普通值也可以作为模板参数 非类型模板参数定义的是常量 template<typename T, size_t N> class array; //T&#xff1a;类型模板参数 //N&#xff1a;非类型模板参…

容器(vector与multimap)案例 - 员工分组

容器&#xff08;vector与multimap&#xff09;案例 - 员工分组 案例描述&#xff1a; 公司招聘了10个员工&#xff08;ABCEDEFGJHIJ&#xff09;&#xff0c;员工进入公司后&#xff0c;需要指派员工在哪个部门工作员工信息有&#xff1a;姓名 工资&#xff1b;部门分为&…

STL常用容器 之vector

STL常用容器 之vector 文章目录STL常用容器 之vector1. vector容器1. vector基本概念2. vector构造函数3. vector赋值函数4. vector容量与大小5. vector插入和删除6. vector数据存取7. vector互换容器8. vector预留空间1. vector容器 1. vector基本概念 功能&#xff1a;vect…

HDU 1027:Ignatius and the Princess II ← next_permutation()

【题目来源】http://acm.hdu.edu.cn/showproblem.php?pid1027【题目描述】 Now our hero finds the door to the BEelzebub feng5166. He opens the door and finds feng5166 is about to kill our pretty Princess. But now the BEelzebub has to beat our hero first. feng5…

【C++】string简单实用详解

本片要分享的内容是有关于string的知识&#xff0c;在这之前得介绍一下什么是STL&#xff1b; 目录 1.STL简单介绍 2. string简单介绍 3.string简单使用 3.1.string的定义 3.2.字符串的拼接 3.3.string的遍历 3.3.1.循环遍历 3.3.2.迭代器遍历 4.string的函数构造 1.…

【C++】STL 容器 - multiset 容器 ( std::multiset 容器简介 | std::multiset 容器 常用操作 api 简介 )

文章目录 一、mulset 容器1、std::multiset 容器简介2、代码示例 - multiset 容器 二、std::multiset 容器 常用操作 api 简介1、常用 api 简介2、代码示例 - multiset 容器常用操作 一、mulset 容器 1、std::multiset 容器简介 在 C 语言 的 标准模板库 ( STL , Standard Temp…

stl find sort

网络资源修改添加。 find 用stl的find方法查找一个包含简单类型的vector中的元素 vector<int> nVec; find(nVec.begin(),nVec.end(),5); find_if 自定义结构、符合类型 假如vector包含一个复合类型的对象呢比如 class A { public:A(const std::string str,int id)…

【C++】String类基本接口介绍及模拟实现(多看英文文档)

string目录 如果你很赶时间&#xff0c;那么就直接看我本标题下的内容即可&#xff01;&#xff01; 一、STL简介 1.1什么是STL 1.2STL版本 1.3STL六大组件 1.4STL重要性 1.5如何学习STL 二、什么是string&#xff1f;&#xff1f;&#xff08;本质上是一个类&#xff0…

c++错误使用迭代器超出引用范围分析与解决

文章目录前言相关错误错误截图错误原因解决方案Visual Studio 更新日志前言 今天在调用一个URI解析库的时候&#xff0c;在clang的编译器上代码能正常编译&#xff0c;在visual studio就提示迭代器的错误了 相关错误 cannot increment value-initialized string_view iterato…

C++ list容器基础使用

***********************************************************************************************前言各个容器有很多的相似性&#xff0c;大同小异。首先对它们有个总体把握&#xff0c;看看他们的分类&#xff1a;标准STL序列容器&#xff1a;vector、string、deque和lis…

stl vector 函数_vector :: end()函数,以及C ++ STL中的示例

stl vector 函数C vector :: end()函数 (C vector::end() function) vector::end() is a library function of "vector" header, it can be used to get the last element of a vector. It returns an iterator pointing to the past-the-end element of the vector…

STL 从0开始实现一个TinySTL

转自 简介 对于每一个热爱c的人来说&#xff0c;STL都是他们日常撸码、高效工作的必定会使用到的标准模板库。STL取用范型的思想&#xff0c;通过模板元编程&#xff0c;去掉了不同型别所带来的差异性&#xff0c;极大的提高了代码的复用性。既然STL如此强大与方便&#xff0c;…

STL学习笔记-容器初始化与赋值

顺序容器&#xff1a;vector, list, deque 容器适配器&#xff1a;satck, queue, priority_queue 每种容器都有自己的迭代器&#xff0c;迭代器的接口都是一样的。 常用迭代器操作&#xff1a;iter; --iter; *iter; iter1 iter2; iter1 ! iter2 vector和deque迭代器的额外操作…

C++ vector 内存释放

C STL容器 vector 的工作原理 vector容器的元素以连续方式存放&#xff0c;每一个元素都紧挨着前一个元素存储&#xff0c;类似数组的内存结构。 系统预先给vector容器分配一块 capactity 大小的内存空间&#xff0c;当插入的数据超过这个空间的时候&#xff0c;这块空间会让…

C++面向对象(OOP)编程-STL详解(vector)

本文主要介绍STL六大组件&#xff0c;并主要介绍一些容器的使用。 目录 1 泛型编程 2 CSTL 3 STL 六大组件 4 容器 4.1 顺序性容器 4.1.1 顺序性容器的使用场景 4.2 关联式容器 4.2.1 关联式容器的使用场景 4.3 容器适配器 4.3.1 容器适配器的使用场景 5 具体容器的…

C++【STL】之string模拟实现

C string类模拟实现 上一篇讲解了string的使用&#xff0c;当然少不了string的模拟实现实现啦&#xff01;这里依然是讲解常用接口的模拟实现&#xff0c;话不多说&#xff0c;下面正文直接开始&#xff01; 文章目录&#xff1a; C string类模拟实现1. 成员变量2. 默认成员函数…

[C/C++]详解STL容器2--vector的功能和模拟实现(迭代器失效,memcpy拷贝问题)

本文介绍了vector类的常用接口的使用&#xff0c;并对其进行了模拟实现&#xff0c;对模拟实现中涉及到的迭代器失效问题&#xff0c;memcpy拷贝问题进行了解析。 一、vector类 向量&#xff08;Vector&#xff09;是一个封装了动态大小数组的顺序容器&#xff08;Sequence C…

多线程的文件读写操作讨论

背景&#xff1a; 对于13GB大小的文件&#xff0c;逐行读取&#xff0c;后写到一个新文件。单个线程&#xff0c;进行耗时242s。这里的处理操作比较简单&#xff0c;仅仅是直接写到一个新的文件。如果处理操作耗时越长&#xff0c;多线程的优点越能够显现出来。 采用多线程&a…

C++ STL set容器使用教程

文章目录 引用头文件初始化赋值遍历 set 容器1. 迭代器遍历2. auto3. range for循环4. for_each 迭代器vector 常用方法返回 set 长度插入元素删除元素 set 为关联式容器&#xff0c;翻译为集合&#xff0c;其中的元素类型为 pair&#xff0c;需要注意 set 容器存储的各个键值对…

C++任意函数invoke的实现

本方法支持任意普通函数&#xff0c;仿函数&#xff0c;lambda表达式&#xff0c;普通类成员函数&#xff0c;const类成员函数&#xff0c;以及静态成员函数。支持可变参数&#xff0c;支持基类成员函数&#xff0c;支持右值传参。 先给出代码&#xff1a; #pragma once#incl…

详解C++STL容器系列(二)—— list的详细用法和与vector的对比

目录一、list介绍二、list创建三、list方法对比vector四、list的具体用法4.1 iterators4.2 Capacity4.3 Element access4.4 Modifierspush_front、push_back、emplace_front、emplace_backinsert、emplaceeraseassignswap4.5 list operationsspliceremoveremove_ifuniquesortme…

【C++】STL常用容器总结之六:基于deque的顺序容器适配器

7、基于deque的顺序容器适配器 1、stack的基本概念 Stack即栈&#xff0c;允许新增元素、移除元素、取得最顶端元素。但除了最顶端外&#xff0c;没有任何其他方法可以存取stack的其他元素&#xff0c;换言之&#xff0c;stack不允许随机访问。可以将stack看成是封闭了一端开…

【C++】STL常用容器总结之三:向量vector

4、向量vector Vector是同一种类型的对象的集合&#xff0c;每个对象都有一个对应的整数索引值。Vector的数据安排及操作方式与array非常相似&#xff0c;唯一的差别在于array是静态空间&#xff0c;一旦配置了就不能改变&#xff1b;vector是动态空间&#xff0c;随着元素的加…

【C++】STL常用容器总结之一:容器与迭代器

声明&#xff1a; 1、本博文主要整理自《C Primer》和《STL源码剖析》这两本经典书籍。同时&#xff0c;也参考了网络中不少优秀博客&#xff0c;对这些博客的作者表示感谢。2、由于博主能力有限&#xff0c;对于一些容器的用法可能尚未进行深入研究。因此&#xff0c;本博文若…

C++ STL精通之旅:向量、集合与映射等容器详解

目录 常用容器 顺序容器 向量vector 构造 尾接 & 尾删 中括号运算符 获取长度 清空 判空 改变长度 提前分配好空间 代码演示 运行结果 关联容器 集合set 构造 遍历 其他 代码演示 运行结果​编辑 映射map 常用方法 构造 遍历 其他 代码演示1​编…

stl容器使用中的经验(四)--关联容器实现自己的比较类型及比较函数在等值的情况下一定要返回false

1、关联容器实现自己的比较类型 我们经常定义一个容器。 vector<int> vec;其实&#xff0c;这个是下面函数的缩写。 vector<int, less<int>> vec;vector<int, less<int>, allocator<int>> vec;只不过是默认的&#xff0c;容器中指定了默…

stl容器使用中的经验(二)--如何正确删除容器的元素和使用reserve减少内存分配次数

1、慎重选择删除元素的方法 或许我们曾遇到过一道面试题&#xff0c;给定一个vector矢量&#xff0c;删除这个容器中所有值等于3的元素。 第一次&#xff0c;手写循环删除&#xff1a; vector<int> vec{1, 2, 3, 5, 3, 6, 3, 7, 3, 3}; for(vector<int>::iterat…

stl标准库系列之--queue

1、queue容器的定义2、queue容器的创建1、创建一个不包含任何元素的 queue 适配器&#xff0c;并采用默认的 deque 基础容器2、创建指定底层容器的 stack 适配器3、基础容器来初始化4、赋值3、迭代器4、成员函数5、使用我们在前面说stack的时候已经说过了什么叫容器适配器&…

stl标准库系列之--stack

1、什么是容器适配器2、stack 容器的定义3、stack 容器创建1、 创建一个不包含任何元素的 stack 适配器&#xff0c;并采用默认的 deque 基础容器2、创建指定底层容器的 stack 适配器3、赋值4、迭代器5、成员函数6、使用1、什么是容器适配器 理解容器适配器之前&#xff0c;我…

洛谷——P3879 [TJOI2010] 阅读理解(STL:hash+set,c++)

文章目录 一、题目[TJOI2010] 阅读理解题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示 二、题解基本思路&#xff1a;代码 一、题目 [TJOI2010] 阅读理解 题目描述 英语老师留了 N N N 篇阅读理解作业&#xff0c;但是每篇英文短文都有很多生词需要查字典&am…

Effective STL读书笔记

没有c程序不使用STL&#xff0c;这是一本讲述如何正确高效地使用STL的参考书。 STL的核心是容器和算法&#xff0c;有了一定的使用经验之后&#xff0c;本书可以作为技术提升的点睛之笔。 本书成文较早&#xff0c;技术已经发生了较大的变化&#xff0c;取其精华。 容器 慎重…

string类的模拟实现——模拟的技巧

前言 对于学习STL而言&#xff0c;最重要的手段之一就是亲手模拟实现一个自己的容器。string存储只为char类型&#xff0c;且操作上并没有很难的操作。因此对于初学者而言&#xff0c;string是一个很好的练手项目。 一、确定思路 虽说相对适合初学者模拟实现&#xff0c;但是…

美妙的STL

STL&#xff0c;英文全称 standard template library&#xff0c;中文可译为标准模板库或者泛型库&#xff0c;是C标准库的重要组成部分&#xff0c;其包含有大量的模板类和模板函数&#xff0c;是 C 提供的一个基础模板的集合&#xff0c;用于完成诸如输入/输出、数学计算等功…

通过Node.js解析stl文件

通过Node.js解析stl文件 在此之前请确认已安装Node.js&#xff0c;已配置环境变量。如未安装与配置&#xff0c;请查看Node.js安装及环境配置&#xff08;Windows&#xff09; 一、下载Node项目文件 Node项目文件下载链接 提取码&#xff1a;9evd 二、命令行运行 解压下载的…

C++STL getline函数

C中有两个getline函数&#xff0c;这两个函数分别定义在不同的头文件中。 1.getline()是定义在<string>中的一个行数&#xff0c;用于输入一行string&#xff0c;以enter结束。 函数原型&#xff1a;getline(cin,str); cin:istream类的输入流对象 str:待输入的string对象…

1.函数模板基础

1.1函数模板作用&#xff1a; 建立一个通用函数&#xff0c;其函数返回值类型和形参类型可以不具体指定&#xff0c;用一个虚拟的类型来代表&#xff0c;提高复用性 1.2语法&#xff1a; //第一种 template <typename T> 函数声明或定义//第二种 template <class T&…

STL queue队列

queue empty(判断队列是否为空) Test whether container is empty (public member function ) size&#xff08;计算队列大小&#xff09; Return size (public member function ) front&#xff08;队列头的元素&#xff09; Access next element (public member functi…

基于STL泛化编程的演讲比赛.cpp

基于STL泛化编程的演讲比赛.cpp 比赛规则: 学校举办一场演讲比赛&#xff0c;共12个人参加&#xff0c;比赛共两轮&#xff0c;第一轮为淘汰赛&#xff0c;第二轮为决赛每名选手都有对应得编号&#xff0c;如 10001 ~ 10012比赛方式&#xff1a;分组比赛&#xff0c;每组6个人…

【C++】STL容器总结

https://blog.csdn.net/hudfang/article/details/52934130 三大类容器&#xff1a; 1. 序列式容器&#xff1a;vector、deque、list vector是一种动态数组&#xff0c;在内存中具有连续的存储空间&#xff0c;支持快速随机访问。由于具有连续的存储空间&#xff0c;所以在插…

容器:list用法及示例

list用法及示例 文章目录list用法及示例一、简介二、容器特性三、使用成员函数几种创建方式示例&#xff1a;demo1:demo2: 插入&#xff1a;push_front(), push_back(), emplace_front(), emplace_back(), emplace()demo3: 插入&#xff1a;insert()的多种方式demo4: 移动&…

map 和 multimap 存储区别 、取消自动排序 unordered_map

测试代码 std::map<int, CString > Map1;Map1.insert({ 6, L"HN400*200*11*8" });Map1.insert({ 5, L"HN200*200*11*8" });Map1.insert({ 7, L"HN100*200*11*8" });Map1.insert({ 4, L"HN200*200*11*8" });Map1.insert({ 4, L…

STL pair源码分析

STL pair源码分析 pair是STL中提供的一个简单的struct&#xff0c;用来处理类型不同的一对值&#xff0c;是非常常用的数据结构。这一对值是以public的形式暴露出来的&#xff0c;直接通过first和second就能访问。我们以MSVC提供的STL源码为例&#xff0c;分析pair的具体实现。…

【C++从青铜到王者】第七篇:STL之string类的初识

系列文章目录 文章目录系列文章目录前言一、什么是STL二、STL的六大组件三、STL的缺陷四、为什么学习string类1.C语言中的字符串2.两个面试题3.标准库中的string类4.string类的常用接口说明1.string类对象的常见构造2.string类对象的容量操作3.string类对象的访问及遍历操作4. …

STL工具库使用解析系列之二:自定义比较函数的两种方式(重载和仿函数)

C比C不仅多了面向对象支持class类编程&#xff0c;还支持泛型编程&#xff0c;以及提供丰富的STL开发工具库。泛型是一种在编译期间动态具体化的技术&#xff0c;使得一些通用算法或数据结构的封装变得十分方便。在C标准中指出&#xff0c;当一个模板不被使用时&#xff0c;它就…

C++基础(2022.9.3)

文章目录STL容器序列式容器Vector【动态数组】deque【双端队列】关联式容器set & multisetmap & multimap无序关联容器容器适配器stack【栈】queue【队列】priority_queue【优先队列、堆】共有函数典题set应用【删除最小的大于等于某个值的元素】bitsetpairStringSTL容…

Boost搜索引擎的实现

目录Boost搜索引擎项目1.项目的相关背景2.搜索引擎的相关宏观原理3.搜索引擎技术栈和项目环境4.正排索引vs倒排索引 -搜索引擎具体原理正排索引&#xff1a;就是从文档ID找到文档内容(文档内的关键字)倒排索引&#xff1a;根据文档内容&#xff0c;分词&#xff0c;整理不重复的…

【C++】继承详解

本篇要分享的内容是关于继承的内容哼哼哼啊啊啊啊啊啊啊啊啊啊啊啊啊啊 以下为本篇目录 目录 1.简单了解继承 2.继承的简单定义 3.继承简单使用 4.继承方式 4.1基类的privat 4.2基类的protected 4.3不可见与private的区别 5.父子类对象赋值转换 6.继承的作用域 7.子…

【C++干货铺】STL简述 | string类的使用指南

个人主页点击直达&#xff1a;小白不是程序媛 C系列专栏&#xff1a;C干货铺 代码仓库&#xff1a;Gitee 目录 什么是STL STL的版本 STL的六大组件 STL的缺陷 string类 C语言中的字符串 标准库中的string类 string类常用的接口使用指南 string类中常见的构造 strin…

详解C++STL容器系列(三)—— map属性和方法详解

目录一、map介绍二、map的属性和方法iteratorscapacityElement accessModifiersOperations三、map的具体用法3.1 iterator&#xff08;迭代器访问&#xff09;3.2 capacity&#xff08;容量&#xff09;3.3 Element access&#xff08;下标访问&#xff09;3.4 Modifiers&#…

PAT甲级1051

1051. Pop Sequence (25) 时间限制100 ms内存限制65536 kB代码长度限制16000 B判题程序Standard作者CHEN, YueGiven a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, ..., N and pop randomly. You are supposed to tell if a given seque…

【C++】STL常用容器总结之十一:容器小结

12、容器小结 1、容器的选用 Vector和deque容器提供了对元素的快速访问&#xff0c;但付出的代价是&#xff0c;在容器的任意位置插入或删除元素&#xff0c;比在容器尾部插入和删除的开销更大&#xff0c;因为要保证其连续存储&#xff0c;需要移动元素&#xff1b;list类型…

一文带你掌握 优先级队列

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;强烈推荐优质专栏: &#x1f354;&#x1f35f;&#x1f32f;C的世界(持续更新中) &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶 &#x1f43b;推荐专栏2: &#x1f354;…

C++STL库的 deque、stack、queue、list、set/multiset、map/multimap

deque 容器 Vector 容器是单向开口的连续内存空间&#xff0c; deque 则是一种双向开口的连续线性空 间。所谓的双向开口&#xff0c;意思是可以在头尾两端分别做元素的插入和删除操作&#xff0c;当然&#xff0c; vector 容器也可以在头尾两端插入元素&#xff0c;但是在其…

3. STL中的allocator

想深入学习的话&#xff0c;推荐侯捷的内存管理课程 链接&#xff1a;https://www.bilibili.com/video/BV1it411g776

1. STL体系结构

STL 6 大组成部分 其他说明 STL 不是OO的设计思想&#xff0c;因为它是数据和算法是分开的&#xff0c;是泛型编程&#xff08;模板编程&#xff09;的思想。

【C++】STL常用容器总结之十:多重映射multimap和多重集合multiset

11、多重映射multimap和多重集合multiset 由于multimap/multiset与map/set有太多的相似之处&#xff0c;故在这里我们一起进行介绍。首先需要指出的是&#xff0c;multimap的特性以及用法与map完全相同&#xff0c;唯一的差别在于它允许键值重复。同样&#xff0c;multiset的特…

【C++】STL常用容器总结之九:集合set

#10、集合set Map容器是键值对的集合&#xff0c;而set容器只是单纯的键的集合&#xff0c;当只想知道一个值是否存在时&#xff0c;使用set容器是最合适的。在set中&#xff0c;所有元素都会根据其键值被自动排序&#xff0c;同时set中不允许两个元素有相同的键值。 ##1、set容…

【C++】String类基本接口介绍(多看英文文档)

string目录 目录 如果你很赶时间&#xff0c;那么就直接看我本标题下的内容即可&#xff01;&#xff01; 一、STL简介 1.1什么是STL 1.2STL版本 1.3STL六大组件 1.4STL重要性 1.5如何学习STL 二、什么是string&#xff1f;&#xff1f;&#xff08;本质上是一个类&…

【C++】STL常用容器总结之八:映射map

9、映射map Map是键-值对的集合&#xff0c;map中的所有元素都是pair&#xff0c;可以使用键作为下标来获取一个值。Map中所有元素都会根据元素的值自动被排序&#xff0c;同时拥有实值value和键值key&#xff0c;pair的第一元素被视为键值&#xff0c;第二元素被视为实值&…

【C++】STL常用容器总结之七:对组pair与关联容器

8、对组pair 在这部分&#xff0c;我们先介绍一下对组pair与关联容器&#xff0c;之后再介绍常用的几个具体的关联容器。 1、关联容器 关联容器是存储对象集合的类型&#xff0c;支持通过键的高效查询。关联容器的大部分行为与顺序容器相同&#xff0c;二者的本质区别在于关…

c++11 标准模板(STL)(std::pair)(二)

定义于头文件 <utility> std::pair 是一个结构体模板&#xff0c;其可于一个单元存储两个相异对象。 pair 是 std::tuple 的拥有两个元素的特殊情况。 构造函数 std::pair<T1,T2>::pair pair(); &#xff08;1&#xff09;(C11 前) constexpr pair(); (C11 起) (…

【C++】STL常用容器总结之二:顺序容器

3、顺序容器 所谓序列式容器&#xff0c;其中的元素都可序&#xff08;ordered&#xff09;&#xff0c;但未必有序&#xff08;sorted&#xff09;。array为C语言内置的序列容器&#xff0c;STL另外提供vector、list、deque、stack、queue等等顺序式容器。它们的差别在于访问…

【1++的数据结构】之map与set(二)

&#x1f44d;作者主页&#xff1a;进击的1 &#x1f929; 专栏链接&#xff1a;【1的数据结构】 文章目录 一&#xff0c;前言二&#xff0c;红黑树的概念及其性质三&#xff0c;红黑树的插入四&#xff0c;红黑树的验证五&#xff0c;map与set的封装红黑树迭代器的实现map重载…

【C++练级之路】【Lv.8】【STL】list类的模拟实现

快乐的流畅&#xff1a;个人主页 个人专栏&#xff1a;《C语言》《数据结构世界》《进击的C》 远方有一堆篝火&#xff0c;在为久候之人燃烧&#xff01; 文章目录 引言一、结点二、迭代器2.1 成员变量与默认成员函数2.2 operator*2.3 operator->2.4 operator2.5 operator- …

#C++STL #vector #学习笔记

vector是非常类似array的容器&#xff0c;其更高级的一点是其容量可以根据实时需求动态调整。本文在array容器相关方法的基础上进一步探索vector容器的动态性。 vector Dedinition 类似array容器但是容量可以根据实际需求增加[reserve()方法]或者减少[shrink_to_fit()或者swa…

与排序相关的STL模板

今天,深度学习了排序的我决定大展身手,将另我突发八十年脑血栓的STL排序全部列举出来. 本博客除了已在文章中说明的函数外,其他默认头文件为<algorithm>. qsort 在c标准库中,此函数被(收藏)于<cstdlib> qsort 与 bsearch 的比较函数 qsort 函数有四个参数&…

【Codeforces Round #835 (Div. 4)】A——G题解

文章目录A Medium Number题意思路代码B Atillas Favorite Problem题意思路代码C Advantage题意思路代码D Challenging Valleys题意思路代码E Binary Inversions题意思路代码F Quests题意思路代码G SlavicGs Favorite Problem题意思路代码A Medium Number 题意 三个数&#xf…

STL中vector的构造函数

vector是由STL提供的一种序列式容器&#xff0c;它的底层其实就是一个动态数组。如要使用vector&#xff0c;需要#include<vector>。vector的特点&#xff1a;因为支持下标访问&#xff0c;所以能高效的进行随机存取&#xff0c;时间复杂度为O(1)&#xff1b;由于内存空间…

vector使用指南

目录 引言 空间配置器 vector<char>与 string的一些差异 vector容器与string容器的一些差异 接口介绍——reserve resize接口 shrink_to_fit 接口 operator[ ] 和 at 接口 assign接口 增删查改接口 swap接口 例题讲解 引言 vector实质上就是数据结构的顺序表…

【C++】STL String

C提供String 的模板类&#xff0c;可以很方便的处理字符串。 关于字符串的操作大致分为&#xff1a; 1. 遍历字符串中每个元素&#xff1a;两种方法&#xff0c;利用下表【】以及迭代器&#xff0c;下面会有例子解释 2. 对字符串本身进行操作 例如&#xff0c;字符串拼接&#…

【C++之容器篇】精华:vector常见函数的接口的熟悉与使用

目录前言一、认识vector1. 介绍2. 成员类型二、默认成员函数&#xff08;Member functions&#xff09;1. 构造函数2. 拷贝构造函数vector (const vector& x);3. 析构函数4. 赋值运算符重载函数三、迭代器&#xff08;Iterators&#xff09;1. 普通对象的迭代器2. const对象…

C++11可变模板参数

C11可变模板参数一、简介二、语法三、可变模版参数函数3.1、递归函数方式展开参数包3.2、逗号表达式展开参数包一、简介 C11的新特性–可变模版参数&#xff08;variadic templates&#xff09;是C11新增的最强大的特性之一&#xff0c;它对参数进行了高度泛化&#xff0c;它能…

STL常用容器 之deque

文章目录STL常用容器 之deque1. deque容器1. deque容器基本概念2. deque构造函数3. deque赋值函数4. deque大小操作5. deque插入和删除6. deque数据存取7. deque 排序STL常用容器 之deque 1. deque容器 1. deque容器基本概念 功能&#xff1a;双端数组&#xff0c;可以对头端…

C++ | STL list容器

目录 一.简述list容器 二.list容器创建方式 三.list容器的插入和删除操作 四.关于list容器迭代器的使用方法 五.关于list容器的sort 一.简述list容器 list是双向链表容器&#xff0c;也就是说它的底层是一个双向循环链表。所需头文件#include<list> 因为list是双向链…

【C++修行之路】STL——模拟实现string类

文章目录前言类框架构造与析构c_str迭代器操作符重载[]&#xff1a;&#xff1a;> > < < !:reverse与resizereverseresizepush_back与append复用实现insert和erasec_str与流插入、流提取eraseswap(s1,s2)与s1.swap(s2)结语前言 这次我们分几个部分来实现string类…

C++编程语言STL之queue介绍

本文主要介绍C编程语言的STL&#xff08;Standard Template Library&#xff09;中queue&#xff08;队列&#xff09;的相关知识&#xff0c;同时通过示例代码介绍queue的常见用法。1 概述适配器&#xff08;adaptor&#xff09;是STL中的一个通用概念。容器、迭代器和函数都有…

【STL十】关联容器——set容器、multiset容器

【STL十】关联容器——set容器、multiset容器一、set简介二、头文件三、模板类四、set的内部结构五、成员函数1、迭代器2、元素访问3、容量4、修改操作~~5、操作~~5、查找6、查看操作六、demo1、查找find2、修改操作insert3、修改操作erase、clear七、multisetset和multiset会根…

C++ STL学习之【容器适配器】

✨个人主页&#xff1a; 夜 默 &#x1f389;所属专栏&#xff1a; C修行之路 &#x1f38a;每篇一句&#xff1a; 图片来源 A year from now you may wish you had started today. 明年今日&#xff0c;你会希望此时此刻的自己已经开始行动了。 文章目录 &#x1f307;前言&a…

[C++]迭代器iterator的实现(支持编译器for块简易写法)

什么是迭代器? 以下是维基百科的简介. 迭代器&#xff08;iterator&#xff09;&#xff0c;是确使用户可在容器对象&#xff08;container&#xff0c;例如链表或数组&#xff09;上遍访的对象[1][2][3]&#xff0c;设计人员使用此接口无需关心容器对象的内存分配的实现细节。…

【STL】string的使用

放在专栏【C知识总结】&#xff0c;会持续更新&#xff0c;期待支持&#x1f339; STL简介 STL的诞生 STL为英文Standard Template Library的缩写&#xff0c;译为标准模板库。是C标准库的重要组成部分。 长久以来&#xff0c;软件届一直希望建立一种可重复运用的东西。所谓…

详解c++STL—容器deque

目录 1、deque容器的基本概念 1.1、功能 1.2、deque与vector区别 1.3、deque内部工作原理 2、deque构造函数 2.1、功能描述 2.2、函数原型 2.3、示例 3、deque赋值操作 3.1、功能描述 3.2、函数原型 3.3、示例 4、deque大小操作 4.1、功能描述 4.2、函数原型 4…

【deque容器系列一】基于STL源码分析deque容器整体实现及内存结构

本篇文章基于gcc中stl的源码介绍deque容器的整体实现和它的内存结构。 说明一下&#xff0c;我用的是gcc7.1.0编译器&#xff0c;标准库源代码也是这个版本的。 首先呢&#xff0c;还是看一下思维导图&#xff0c;如下&#xff1a; 1. deque容器整体源码实现介绍 deque容器是s…

047 Student List for Course(24行代码+测试点3分析+超详细注释)

分数 25 全屏浏览题目 切换布局 作者 CHEN, Yue 单位 浙江大学 Zhejiang University has 40,000 students and provides 2,500 courses. Now given the registered course list of each student, you are supposed to output the student name lists of all the courses. …

[Daimayuan] Gene(C++,字符串)

题目描述 高中生物中提到&#xff0c;酶切位点 是基因序列上一段特定的碱基序列&#xff0c;而 限制性核酸内切酶 能够识别出这个序列并在对应的切割位置将基因序列切成两段。 现有一种名为 E c o R I EcoRI EcoRI 的限制酶&#xff0c;其识别序列为 GAATTC&#xff0c;切割…

[C/C++]详解STL容器1--string的功能和模拟实现(深浅拷贝问题)

本文介绍了string类的常用接口的使用&#xff0c;并对其进行了模拟实现&#xff0c;对模拟实现中涉及到的深浅拷贝问题进行了解析。 目录 一、string类 1. C语言中的字符串 2. C中的string类 二、string类的常用接口的使用 1. string类对象的常见构造 2. string类对象的容…

第一节 STL体系结构基础介绍

Generic Programming&#xff0c;GP&#xff0c;泛型编程&#xff0c;就是使用template为主要工具来编写程序。 STL是泛型编程最成功的作品&#xff0c;该课程就是以STL为标的深层次地讨论泛型编程。 重要网页&#xff1a; cplusplus.com - The C Resources Network cppref…

STL stack,queue,deque以及适配器

目录 stackstack的使用stack模拟实现 queuequeue的使用queue模拟实现 适配器deque stack stack的使用 下面是stack库中的接口函数&#xff0c;有了前面的基础&#xff0c;我们可以根据函数名得知函数的作用 函数说明stack()构造空栈empty()判断栈是否为空size()返回栈中元素…

C++STL剖析(二)—— vector的概念和使用

文章目录1. vector的介绍2. vector的常见构造3. vector的遍历方式&#x1f351; [ ] 下标&#x1f351; 迭代器&#x1f351; 范围for4. vector 迭代器使用&#x1f351; begin 和 end&#x1f351; rbegin 和 rend5. vector 空间增长问题&#x1f351; size&#x1f351; cap…

容器(vector与deque)案例 - 评委打分

容器&#xff08;vector与deque&#xff09;案例 - 评委打分 案例描述&#xff1a; 有五名选手&#xff1a;选手ABCDE,10个评委分别对每一位选手打分&#xff0c;去除最高分&#xff0c;去除最低分。 实现步骤&#xff1a; 创建5名选手&#xff0c;放到vector中遍历vector容…

Cpp進階:Map 映射表

Cpp 進階&#xff1a;Map 映射表 文章目錄Cpp 進階&#xff1a;Map 映射表簡介參考正文重要類型元素操作map.insert 插入(增)map.find、map.lower_bound、map.upper_bound 查找(查)map.erase、map.clear 刪除元素(刪)迭代器其他方法結語簡介 上一篇&#xff1a;Cpp 進階&#…

迷宫《1》

一天蒜头君掉进了一个迷宫里面&#xff0c;蒜头君想逃出去&#xff0c;可怜的蒜头君连迷宫是否有能逃出去的路都不知道。看在蒜头君这么可怜的份上&#xff0c;就请聪明的你告诉蒜头君是否有可以逃出去的路。输入格式第一行输入两个整数 &#xfffd;n 和 &#xfffd;m&#x…

笔记(三)——迭代器的基础理论知识

迭代器是一种检查容器内元素并且遍历容器内元素的数据类型。它提供对一个容器中的对象的访问方法&#xff0c;并且定义了容器中对象的范围。一、vector容器的iterator类型vector容器的迭代器属于随机访问迭代器&#xff0c;一次可以移动多个位置。vector<int>::iterator …

【STL系列】unordered_set和unordered_map

前言 之前&#xff0c;我们介绍了STL中树形结构容器:set、map、multiset、multimap。 在C98中&#xff0c;STL提供了底层为红黑树结构的一系列关联式容器&#xff0c;在查询时的效率可达到O(logN)&#xff0c;即最差情况下需要比较红黑树的高度次&#xff0c;但当树中的结点非…

HDU 1716:排列2 ← next_permutation()

【题目来源】http://acm.hdu.edu.cn/showproblem.php?pid1716【题目描述】 Ray又对数字的列产生了兴趣&#xff1a; 现有四张卡片&#xff0c;用这四张卡片能排列出很多不同的4位数&#xff0c;要求按从小到大的顺序输出这些4位数。【输入格式】 每组数据占一行&#xff0c;代…

[C/C++]详解STL容器3--list的功能和模拟实现(迭代器失效问题)

本文介绍了list的常用接口的使用&#xff0c;并对其进行了模拟实现&#xff0c;包括list迭代器的实现。 目录 一、list的介绍 二、list的常用接口的使用 1. list的构造 2. list iterator的使用 3.list capacity的使用 4.list element access 5.list modifiers 6. list…

STL自我强化

过会儿再更新。。。

Cpp進階:Vector 向量

Cpp 進階&#xff1a;Vector 向量 文章目錄Cpp 進階&#xff1a;Vector 向量簡介參考正文Overview 總覽Printer 輔助函數Declaration 變量聲明構造函數語法Access 訪問元素(查、改)訪問元素(查、改)相關語法Insert & Erase 增刪元素(增、刪)增刪元素(增、刪)相關語法Capaci…

c++ STL教程

概念 C STL&#xff08;标准模板库&#xff09;是一套功能强大的 C 模板类&#xff0c;提供了通用的模板类和函数&#xff0c;这些模板类和函数可以实现多种流行和常用的算法和数据结构&#xff0c;如向量、链表、队列、栈。 这三个组件都带有丰富的预定义函数&#xff0c;…

POJ1002,487-3279(STL)

直接map来模拟就好了。 代码如下&#xff1a; #include<string> #include<map> #include<cstdio> #include<iostream> #include<cctype> using namespace std; map<string,int> mp; int main() {int n;scanf("%d",&n);for(…

C++ 具名要求-全库范围的概念 - 建立一种顺序关系的二元谓词 (BinaryPredicate)

此页面中列出的具名要求&#xff0c;是 C 标准的规范性文本中使用的具名要求&#xff0c;用于定义标准库的期待。 某些具名要求在 C20 中正在以概念语言特性进行形式化。在那之前&#xff0c;确保以满足这些要求的模板实参实例化标准库模板是程序员的重担。若不这么做&#xf…

0x71 C++STL

文章目录#include <vector>&#xff08;动态数组&#xff09;声明常用操作push_back/pop_backsize/emptyclearbegin/endfront/backreversesort#include <bitset>声明常用操作本章将介绍 STLSTLSTL 中的 vector&#xff0c;queue&#xff0c;priority_queue&#xf…

C++STL之stack和queue以及deque详解

stack和queue以及deque 文章目录stack和queue以及dequestack的使用queue的使用栈的OJ题练习最小栈栈的压入、弹出序列逆波兰表达式求值什么是适配器&#xff1f;栈和队列的模拟实现栈的模拟实现队列的模拟实现dequedeque的使用deque的底层实现deque的优缺点stack文档翻译&#…

C++STL之string类的使用和实现

文章目录STL简介什么是STLSTL的版本STL的六大组件STL的重要性string为什么学习string类&#xff1f;C语言中的字符串标准库中的string类string类string类对象的构造函数string类的成员函数的使用string类的模拟实现经典的string类问题浅拷贝深拷贝深拷贝和赋值的现代写法string…

【leetcode05.13】344.反转字符串

开启字符串新篇章;发现随着经历的增长&#xff0c;对信息的获取方式也在提升——好像以前就是百度/知乎——>bing/CSDN——>Github/Opencode&#xff1b;这个过程更深感其中的妙处。 反转字符串&#xff08;力扣题目链接&#xff09; 题目要求原地修改&#xff0c;因此自…

C++ STL容器和算法:详解和实例演示

C STL&#xff08;标准模板库&#xff09;提供了一组丰富的容器和算法&#xff0c;使得开发者能够更加高效地编写程序。本文将介绍STL中的一些常用容器和算法。 容器 vector vector是一个动态数组&#xff0c;可以在运行时调整大小。它的优点在于可以快速地访问元素&#xff…

[算法沉淀记录] 排序算法 —— 希尔排序

排序算法 —— 希尔排序 算法介绍 希尔排序&#xff08;Shell Sort&#xff09;是一种基于插入排序的算法&#xff0c;由Donald Shell于1959年提出。希尔排序的基本思想是将待排序的序列划分成若干个子序列&#xff0c;分别进行插入排序&#xff0c;待整个序列中的记录基本有…

C++STL剖析(七)—— map和multimap的概念和使用

文章目录1. map的介绍和使用&#x1f351; map的模板参数列表&#x1f351; map的构造&#x1f351; map的使用&#x1f345; insert&#x1f345; operator[ ]&#x1f345; find&#x1f345; erase&#x1f345; swap&#x1f345; empty&#x1f345; size&#x1f345; co…

【C++之容器适配器】栈和队列模拟实现

目录前言一、栈(stack)1. 基本代码结构2. 简介3. 成员类型4. 成员函数1. 构造函数2. empty()3. size()4. top()5. push()6.pop()7. 综合测试实现的stack的所有函数接口二、队列(queue)1. 基本代码结构2. 队列的简介3. 成员类型4. 成员函数1. 构造函数2. empty()3. size()4. fro…

C++基础学习笔记(八)——提高编程PART3

参考链接&#xff1a;https://www.bilibili.com/video/BV1et411b73Z/p237&spm_id_frompageDriver&vd_sourceb4d9cee68649c8adcb1e266f7147cd5c 4 STL- 函数对象 4.1 函数对象 4.1.1 函数对象概念 概念&#xff1a; 重载函数调用操作符的类&#xff0c;其对象常称为…

详解c++STL—函数对象

目录 1、函数对象 1.1、函数对象概念 1.2、函数对象的使用 2、谓词 2.1、谓词概念 2.2、一元谓词 2.3、二元谓词 3、内建函数对象 3.1、理解内建函数对象 3.2、算术仿函数 3.3、关系仿函数 3.4、逻辑仿函数 1、函数对象 1.1、函数对象概念 概念&#xff1a; 重载…

优先级队列与仿函数

优先级队列 优先级队列 priority_queue 是一种容器适配器&#xff0c;听起来是队列&#xff0c;其实它的底层数据结构是堆&#xff0c;所谓的优先级为默认越大的数优先级越高&#xff0c;即默认为大堆。 使用方式如下面的代码&#xff1a; #include<iostream> #includ…

三张图带你弄懂stl内存分配器,再也不怕面试官问了

本篇文章基于源码来剖析标准库中内存分配器的实现原理及使用。 说明一下&#xff0c;我用的是gcc7.1.0编译器&#xff0c;标准库源代码也是这个版本的。 还是来先通过思维导图来看一下本篇文章会从哪些方面来讲解stl中内存分配器和萃取器&#xff0c;如下&#xff1a; 其实stl中…

C++ STL序列式容器(详解)

STL基础 C STL基本组成&#xff08;6大组件13个头文件&#xff09; 通常认为&#xff0c;STL 是由容器、算法、迭代器、函数对象、适配器、内存分配器这 6 部分构成&#xff0c;其中后面 4 部分是为前 2 部分服务的&#xff0c;它们各自的含义如表 1 所示。 ​ 表 1 STL 组成…

Codeforces 496 E. Distributing Parts ( STL维护贪心

题目描述 You are an assistant director in a new musical play. The play consists of n musical parts, each part must be performed by exactly one actor. After the casting the director chose m actors who can take part in the play. Your task is to assign the p…

C++内建函数(全网最全解析、举例说明)

C中STL的内建函数一、算数类函数对象二、关系类运算函数对象三、逻辑运算类函数对象STL是我们在C经常用到的标准模板库&#xff0c;里面内建了一些函数对象&#xff0c;用法和普通函数相同。需要包含头文件#include <functional.h> 一、算数类函数对象 除了negate是一元…

STL nth_element排序算法

nth_element() 算法和 partial_sort() 不同。应用的范围由它的第一个和第三个参数指定。第二个参数是一个指向第 n 个元素的迭代器。如果这个范围内的元素是完全有序的&#xff0c;nth_dement() 的执行会导致第 n 个元素被放置在适当的位置。这个范围内&#xff0c;在第 n 个元…

【C++17】结构化绑定

C17带来了一个新特性&#xff0c;它结合了语法糖和自动类型推断&#xff1a;结构化绑定。这有助于将对、元组和结构体中的值赋给单独的变量。在其他编程语言中&#xff0c;这也称为解包 #include <iostream> #include <chrono>std::pair<int, std::string>…

C++ STL list对对象变量操作的一些总结

list中存储的是对象(lsit<object>)本身的话&#xff0c;在push_pack的时候&#xff0c;会调用copy赋值构造函数&#xff0c;在调用erase时&#xff0c;会调用析构函数&#xff0c;list<object>变量结束时&#xff0c;会调用其中所有对象的析构函数。这是自己现阶段…

必学STL之bitset类

什么是bitset? bitset是储存二进制位的&#xff0c;就像一个bool型的数组一般 但是空间被优化到了之占一个bit bitset支持下标访问 bitset头文件必须包含bitset&#xff0c;但是它的对象定义不同于其他STL&#xff0c;是其长度而不是类型&#xff0c;所以在定义bitset时候&…

STL的总结

STL的尾声 STL的提出过程&#xff1a;从具体的证明步骤或算法步骤中&#xff0c;提炼出公理性条件&#xff0c;然后再从这个公理条件出发&#xff0c;参考具体情形下的证明或算法步骤&#xff0c;给出一般性步骤。如数学中的群环等结构的推断&#xff0c;是矩阵和四元数等计算…

Thinking in C++第二卷笔记之STL容器部分(二)

Thinking in C第二卷笔记之STL容器部分&#xff08;二&#xff09; 相关日志 STL的总结 http://blog.163.com/zhoumhan_0351/blog/static/3995422720103174417603/ 标准模板类(STL)(四)&#xff0c;容器的比较、对比和总结 http://blog.163.com/zhoumhan_0351/blog/static…

C++标准模板库(STL)知识点

vector 见&#xff1a;算法入门之贪心&#xff08;《算法笔记》&#xff09; stack&#xff0c;queue&#xff0c;priority_queue 见&#xff1a;数据结构之线性结构&#xff08;《算法笔记》&#xff09; set 见&#xff1a;1154 Vertex Coloring (25 分) map 见&#…

在jstl标签中forEach标签遍历Map

原文地址为&#xff1a; 在jstl标签中forEach标签遍历Map<% page import"java.util.Map" %> <% page import"java.util.HashMap" %> <% taglib prefix"c" uri"http://java.sun.com/jsp/jstl/core" %> <% Map map…

【STL源码剖析】总结笔记(10):哈希表(hashtable)探究

00 写在前面 平衡二叉搜索树中的RB-tree作为一种效率表现和复杂度很平衡的结构&#xff0c;一直被用作STL set和map的底层支持。 【STL源码剖析】总结笔记&#xff08;8&#xff09;&#xff1a;红黑树&#xff08;RB-tree&#xff09;探究 【STL源码剖析】总结笔记&#xff0…

vector不是模板 list不是模板

解决方法很简单&#xff0c;也很出乎意料 使用vector和list只是简单地 #include<vector> #include<list> 是不够的 vector和list在命名空间std里&#xff0c;还需要添加声明 using namespace std;

vector-向量

向量vector&#xff1a;vector 类型是以容器(Container) 模式为基准设计的&#xff0c;也就是说&#xff0c;基本有 begin()&#xff0c;end()&#xff0c;size()&#xff0c;max_size()&#xff0c;empty() 以及swap() 这几个方法。1、访问元素的方法&#xff1a;vec[i] - 访问…

C++11: 内置函数 - min() 和 max()

文件位置&#xff1a; /usr/include/c/4.8.2/bits/stl_algobase.h 目录 一、min & max 定义 1.1&#xff09;简单的比较两个对象的大小 1.2&#xff09;传入 comp 函数 一、min & max 定义 1.1&#xff09;简单的比较两个对象的大小 std::min(a, b)template<…

算法笔记:PAT Ranking(C/C++)

转眼5天过去了&#xff0c;又连着5天没有更新了&#xff01; 唉&#xff0c;时间过得真的好快&#xff0c;不知不觉就过的那么久了。 新的一天&#xff0c;要加油啊&#xff01; 今天来看看sort()函数的使用实例。 题目描述&#xff1a; 有n个考场&#xff0c;每个考场有若干数…

C++STL的泛型算法

泛型算法只是依赖于迭代器的操作&#xff0c;而不是依赖于容器 泛型算法可以分为3大类&#xff1a; 下面的vec和vec2代表相同类型的容器 1.只读算法&#xff1a;只允许读取其输入范围内的元素&#xff0c;而不改变元素 find(vec.cbegin(), vec.cend(), k) 查找算法&#xff…

C++11: vector 初始化赋值

目录 一、std::vector 的构造函数举例 二、 std::vector 构造函数列表 一、std::vector 的构造函数举例 #include <vector> #include <string> #include <iostream>template<typename T> std::ostream& operator<<(std::ostream& s, …

C++ STL中map的用法及统计数组各个元素出现的次数

map的基本用法 变量声明 map<string ,string> m; //可以使任意类型&#xff0c;包括自定义类型插入元素 m.insert(pair<string,string>("key","value"));查找元素 iter m.find("key");if(iter ! m.end())cout<<"Fin…

LeetCode11:盛水最多的容器

给定 n 个非负整数 a1&#xff0c;a2&#xff0c;...&#xff0c;an&#xff0c;每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线&#xff0c;垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多…

ndk编译C++,提示找不到头文件(ndk-build error string No such file or directory)

在所在目录 新建文件Application.mk 添加 APP_STL : gnustl_static 即可找到标准库

C++课程设计 STL通讯录管理系统

目录 一&#xff0c;设计要求3 &#xff08;一&#xff09;功能设计要求3 1.建立文件3 2.文件存储3 3.读取文件3 4.增加学生记录3 5.删除记录4 6.修改记录4 7.查询记录4 8.显示记录4 9.关于记录的排序4 10.测试程序5 &#xff08;二&#xff09;总体设计5 1.结构…

ISE -- I/O Buffer 之 STL vector学习

0x01 缘起 在高性能服务器开发的过程中&#xff0c;良好的IO缓存是整个设计比较重要的环节。带着这方面的兴趣&#xff0c;阅读了开源ISE的IO Buffer设计&#xff0c;不评估其优劣&#xff0c;纯粹学习这方面知识&#xff0c;深度学习下STL vector容器的使用和内存的管理。 0x…

深入理解STL源码--空间配置器(allocator)

转载于&#xff1a;http://ibillxia.github.io/blog/2014/06/13/stl-source-insight-1-memory-allocator/?utm_sourcetuicool&utm_mediumreferral 转载理由&#xff1a;实践项目中存在大量使用map&#xff0c;set&#xff0c;vector等STL容器&#xff0c;容器使用时内存分…

C++【STL】之priority_queue学习

优先级队列 优先级队列priority_queue也是STL库中容器适配器的一种&#xff0c;常用于进行数据优先级的处理&#xff0c;说到这儿是不是发现有些熟悉&#xff0c;没错它和我们之前讲解的堆本质上就是一个东西&#xff0c;底层都是数组存储的完全二叉树&#xff0c;它在STL库中…

【STL】:vector的模拟实现

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关vector的模拟实现&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通 数…

PAT乙级1029

1029. 旧键盘(20) 时间限制200 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue旧键盘上坏了几个键&#xff0c;于是在敲一段文字的时候&#xff0c;对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字&#xff0c;请你列出肯定坏掉…

STL 迭代器

STL--迭代器&#xff08;iterator&#xff09;使用详解 指针与数组 int a[5]{0,1,2,3,4};int *begina;int *enda5;for(int *pointbegin;point!end;point)cout<<*point<<" ";指针与其它数据结构呢&#xff1f;比如说链表&#xff1f; 存储空间是非连续的。…

201912-2 回收站选址

stl解法set&#xff1a;pairset&#xff1a; #include <iostream> #include <algorithm> #include <set> #include <vector> using namespace std;struct point {int x,y;point(int _x, int _y):x(_x),y(_y){}bool operator < (const point &p…

c++编程基础的一些基础知识及误区和方法

1. 记一次ACM系统不让过事件&#xff1a;说到底其实还是自己代码问题&#xff0c;自己没有考虑到位&#xff0c;然后编程时没有顾忌到边边角角问题。 Eg:题目大意就算当输入的两个数是0时&#xff0c;表示输入结束。然后我使用 While((cin>>m)!0&&(cin>>n…

stl标准库

目录 一&#xff1a;前言 二&#xff1a;#include #include #include #include 对于,, 三&#xff1a;在这里&#xff0c;我提一下c标准库简介&#xff0c;与stl的关系 四.#include小结 strlen()和length&#xff08;&#xff09;的区别 三个计算长度的函数 getline…

STL 学习(持续更新)

前言&#xff1a;一点都不会stl&#xff0c;在一年前的浙大校赛上就因为不会stl折戟成沙&#xff0c;最近的wannafly的比赛上也有一道题是要用set的去重性的&#xff0c;只能交给队友去写&#xff0c;最最重要的一点来了&#xff0c;最近的一场CF 比赛 D题要用bitset&#xff0…

STL容器:list的简介与使用

list的介绍 list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。list的底层是双向链表结构&#xff0c;双向链表中每个元素存储在互不相关的独立节点中&#xff0c;在节点中通过指针指向其前一个元素和后一个元素。list与fo…

【C++】模拟实现STL string类

前面博客 STLstring类相关接口介绍 中对string的接口进行了详细的介绍和测试&#xff0c;下面我们将对这些接口进行模拟实现&#xff0c;若有疑问可参考前面的博客。 STL string模拟实现源码 头文件String.h #pragma once #include <iostream> #include <string.h&…

VS2017 —— warning C4018 error C2679

warning C4018: “<”: 有符号/无符号不匹配 出错代码: for(int j0;j<detector.size();j) 出错原因分析: detector 是一个Vector容器 ,detecot.size() 在容器说明中 被定义为: unsigned int 类型, 而j是int 类型 所以会出现: 有符号/无符号不匹配警告错误改正: 定义j为…

蓝桥杯重点(C/C++)(随时更新,更新时间:2023.1.29)

点关注不迷路&#xff0c;欢迎推荐给更多人 目录 1 技巧 1.1 取消同步&#xff08;节约时间&#xff0c;甚至能多骗点分&#xff0c;最好每个程序都写上&#xff09; 1.2 万能库&#xff08;可能会耽误编译时间&#xff0c;但是省脑子&#xff09; 1.3 蓝桥杯return 0…

C++ | STL 迭代器

目录 一.什么是迭代器 二.迭代器的划分 1.常量迭代器的简单使用 2.反转型迭代器的简单使用 三.迭代器的插入和修改 1.迭代器的修改操作 2.迭代器的插入操作 四.流式迭代器的类型 五.迭代器失效 一.什么是迭代器 迭代器&#xff08;iterator&#xff09;是一种对象&am…

STL list链表的用法详解

本文以List容器为例子&#xff0c;介绍了STL的基本内容&#xff0c;从容器到迭代器&#xff0c;再到普通函数&#xff0c;而且例子丰富&#xff0c;通俗易懂。不失为STL的入门文章&#xff0c;新手不容错过! 0 前言 1 定义一个list 2 使用list的成员函数push_back和push_front插…

STL常用容器之 map multimap

STL常用容器之 map multimap 文章目录STL常用容器之 map multimap1. map multimap容器1. map 基本概念2. map 构造和赋值3. map 大小和交换4. map 插入和删除5. map 查找和统计6. map 容器排序1. map multimap容器 1. map 基本概念 简介&#xff1a; map中所有元素都是pairp…

c/c++开发,无可避免的模板编程实践(篇五)

一、关联容器简述 容器containers是用来管理某对象数据的集合&#xff0c;每种容器都有其优缺点&#xff0c;为了应对不同应用需求&#xff0c;标准库准备了不同的容器类型&#xff0c;容器可以是数组、链表或者是每个元素有一个特别的键值&#xff08;KEY&#xff09;组织起来…

c++STL急急急

文章目录cSTL急急急vector头文件扩容过程用法&#xff1a;size/emptyclear迭代器begin/endfront/backpush_back() 和 pop_back()queue头文件用法循环队列 queue用法优先队列 priority_queue用法stack头文件deque头文件deque中控器&#xff1a;用法set头文件用法迭代器begin/end…

【C++STL精讲】初识STLSTL简介

文章目录&#x1f490;专栏导读&#x1f490;文章导读&#x1f337;什么是STL&#xff1f;&#x1f337;STL的版本&#x1f337;STL的六大组件&#x1f337;STL的重要性&#x1f337;STL的缺陷&#x1f490;专栏导读 &#x1f338;作者简介&#xff1a;花想云&#xff0c;在读本…

c++11 标准模板(STL)(std::queue)(一)

std::queue 定义于头文件 <queue> template< class T, class Container std::deque<T> > class queue;std::queue 类是容器适配器&#xff0c;它给予程序员队列的功能——尤其是 FIFO &#xff08;先进先出&#xff09;数据结构。 类模板表现为底…

【C++STL精讲】list的使用教程及其模拟实现

文章目录 &#x1f490;专栏导读&#x1f490;文章导读&#x1f337;list是什么&#xff1f;&#x1f337;list如何使用&#xff1f;&#x1f337;list的模拟实现&#x1f33a;定义list类&#x1f33a;构造函数&#x1f33a;push_back&#x1f33a;pop_back &#x1f337;list迭…

【C++】STL之map、set类源码剖析

目录 概述 算法 源码 Iterator.h RBTree.h Map.h Set.h test.cpp 概述 map和set都是STL中的关联式容器&#xff0c;而vector、list、deque是序列式容器。 map是映像&#xff0c;set是集合&#xff0c;map元素的数据类型是std::pair<K,V>格式(key/value形成映像…

【C++】STL之unoerdered_map、unordered_set类源码剖析

目录 概述 源码 HashTable.h UnorderedMap.h UnorderedSet.h test.cpp 概述 STL标准模板库中的map、set的底层数据结构是红黑树&#xff0c;会在数据插入时自动排序&#xff0c;unordered_map、unordered_set的底层数据结构是哈希表&#xff0c;不做排序&#xff0c;根据…

STL search_n搜索算法

search_n() 算法会搜索给定元素的匹配项&#xff0c;它在序列中连续出现了给定的次数。它的前两个参数是定义搜索范围的正向迭代器&#xff0c;第 3 个参数是想要查找的第 4 个元素的连续匹配次数。例如&#xff1a; std::vector<double> values {2.7, 2.7, 2.7, 3.14, …

STL adjacent_find查找算法

adjacent_find() 算法可以用来搜索序列中两个连续相等的元素。用 运算符来比较连续的一对元素&#xff0c;返回的迭代器指向前两个相等元素中的第一个。如果没有一对相等的元素&#xff0c;这个算法返回这个序列的结束迭代器。例如&#xff1a; string saying {"Childre…

1063 Set Similarity(详细注释+35代码+set的妙用)

分数 25 全屏浏览题目 作者 CHEN, Yue 单位 浙江大学 Given two sets of integers, the similarity of the sets is defined to be Nc​/Nt​100%, where Nc​ is the number of distinct common numbers shared by the two sets, and Nt​ is the total number of distinc…

STL find查找算法

find() 为在输入迭代器所定义的范围内查找单个对象的算法&#xff0c;它可以在前两个参数指定的范围内查找和第三个参数相等的第一个对象。 find 算法会返回一个指向被找到对象的迭代器&#xff0c;如果没有找到对象&#xff0c;会返回这个序列的结束迭代器。下面展示了如何使…

STL partial_sort排序算法

通过示例很容易理解什么是部分排序。假设有一个容器&#xff0c;它保存了 100 万个数值&#xff0c;但我们只对其中最小的 100 个感兴趣。可以对容器的全部内容排序&#xff0c;然后选择前 100 个元素&#xff0c;但这可能有点消耗时间。这时候需要使用部分排序&#xff0c;只需…

1034 Head of a Gang(超级无敌详细注释+48行代码)

分数 30 全屏浏览题目 作者 CHEN, Yue 单位 浙江大学 One way that the police finds the head of a gang is to check peoples phone calls. If there is a phone call between A and B, we say that A and B is related. The weight of a relation is defined to be the …

STL常用容器之 set multiset

STL常用容器之 set multiset 文章目录STL常用容器之 set multiset1. set multiset容器1. set基本概念2. set构造和赋值3. set大小和交换4. set插入和删除5. set查找和统计6. set和multiset区别7. pair对组创建8. set容器排序1. set multiset容器 1. set基本概念 所有元素插入…

详解c++STL—容器set/multiset

目录 1、set基本概念 1.1、功能 1.2、本质&#xff1a; 1.3、set和multiset区别 2、set构造和赋值 2.1、功能描述 2.1、构造 2.3、赋值 2.4、示例 3、set大小和交换 3.1、功能描述 3.2、函数原型 3.2、示例 4、set插入和删除 4.1、功能描述 4.2、函数原型 4.3…

【STL源码剖析】总结笔记(3):vector初识

00 写在前面 vector是我们在学习c过程中最早接触也是比较常用的容器之一&#xff0c;从vector入手可以更加容易地理解STL的组织架构。这里我们侧重于vector的内部结构&#xff0c;而vector提供的接口操作不是我们的重点&#xff0c;使用方法可以参考cppreference。 01 概述 …

STL常用容器之 list

STL常用容器之 list 文章目录STL常用容器之 list1. list容器1. list容器的基本概念2. list 构造函数3. list 赋值和交换4. list 大小操作5. list 插入和删除6. list 数据存取7. list 反转和排序8. 排序案例1. list容器 1. list容器的基本概念 功能&#xff1a;将数据进行链式…

STL(四):list

STL 中的list 可以说是与vector 相对应的一个容器。 什么意思呢&#xff1f; 嗯&#xff0c;在我看来&#xff0c;vector 是线性表&#xff0c;空间连续&#xff0c;它的特点是原生指针作为它的迭代器&#xff0c;支持随机存取。但是插入和删除的操作代价高&#xff0c;并且有…

Thinking in C++第二卷笔记之STL容器部分(三)

Thinking in C第二卷笔记之STL容器部分&#xff08;三&#xff09; 相关日志 STL的总结 http://blog.163.com/zhoumhan_0351/blog/static/3995422720103174417603 标准模板类(STL)(四)&#xff0c;容器的比较、对比和总结 http://blog.163.com/zhoumhan_0351/blog/static/…

C++ | STL 单映射容器map

目录 一.何为单映射容器map 二.map容器的使用方法 一.何为单映射容器map 在简绍这map容器之前我们先来看另一个概念——键值对。 所谓的键值对是由 键&#xff08;key&#xff09; 和 值&#xff08;value&#xff09; 两部分组成的&#xff0c;一个键对应一个值&#xff0…

C++ | STL 单集合容器set和多集合容器multiset

目录 一.单集合容器set和多集合容器multiset 二.set常用的构造方式 三.set的插入&#xff0c;删除以及查找操作 四.set的访问函数 五.比较 set 和multiset的不同 六.使用set和multiset时的注意事项 一.单集合容器set和多集合容器multiset set指的是单集合容器&#xff0…

C++ | STL vector容器

目录 一.简述vector容器 二.vector的创建方式 三.vector容器的插入和删除操作 四.vector容器的扩容操作 一.简述vector容器 vector是一个矢量容器&#xff0c;其在底层为一个数组&#xff0c;所需要的头文件为#include<vector> 我们知道数组的逻辑地址和物理地址都是…

STL算法概览

非更易型算法 这些算法不会改动元素值&#xff0c;也不会改变元素的次序。 计数: count/count_if 线性复杂度 最大值最小值&#xff1a;max_element/min_element/minmax_element 线性复杂度 查找元素 查找第一个匹配元素&#xff1a;find/find_if/find_if_not查找前n个连续匹…

哈夫曼编码问题再续(下篇)——优先队列求解

上篇描述了哈夫曼编码问题的基本描述以及建造一个哈夫曼树的过程分析&#xff0c;那么当算法已经描述清楚之后&#xff0c;我们要怎么样来实现 代码呢&#xff1f;或者说&#xff0c;给你一些带有权值的叶子节点&#xff0c;要怎么样利用程序快速算出所对应的哈夫曼树的带权路…

STL序列式容器中常见的函数成员

STL序列式容器中常见的函数成员 文章目录STL序列式容器中常见的函数成员STL序列式容器:图示&#xff1a;array、vector 和 deque 容器list 和 forward_list 容器STL序列式容器: array<T,N>&#xff08;数组容器&#xff09;&#xff1a;表示可以存储 N 个 T 类型的元素&…

容器:vector用法及示例

vector用法及示例 文章目录vector用法及示例一、简介二、容器特性三、基本函数实现1.构造2.插入3.删除4.遍历5.判断6.其他7.总结四、基本用法五、简单介绍六、示例test1test2test3一、简介 向量&#xff08;Vector&#xff09;是一个封装了动态大小数组的顺序容器&#xff08;…

STL使用总结

1. 概述泛型编程思想最早缘于A.Stepanov提出的部分算法可独立于数据结构的论断。20世纪90年代初A.Stepanov和Meng Lee根据泛型编程的理论用C共同编写了STL。但直至1998年&#xff0c;STL才成为C的正式标准。在后来的几年中&#xff0c;各大主流编译器也都相继加入了对STL的支…

JSTL截取字符串

原文地址为&#xff1a; JSTL截取字符串在应用程序开发中,如果内容过长,想截取一定长度字符,然后补充"....." jstl1.1引入了一个fn.tld的标签,用于处理字符,如获得字符length,substring,indexof,endWith,lowcase 实现截取字符串 如: <c:set var"log.logT…

c++ array stl_C ++ STL中带有示例的array :: begin()和array :: end()函数

c array stlC STL array :: begin()和array :: end()函数 (C STL array::begin() and array::end() functions) array::begin() function is a library function of array and it is used to get the first element of the array, it returns an iterator pointing to the fir…

C++ STL 容器自定义内存分配器

一&#xff0c;基础篇 很多时候我们不要用默认的allocator的实现&#xff0c;我们需要自己的内存配置&#xff0c;所以我们可以做自己的分配器&#xff0c;这里说说必须要有的一些注意事项&#xff0c;因为有些是我犯错过的。 需要有自己的一些类型定义比如pointer需要做自己…

【C++STL库】algorithm头文件常用函数

使用&#xff1a; #include <algorithm>using namespace std; max(), min(), abs() //返回最大值或最小值 max(x,y); min(x,y); //返回3个中最大值 max(x,max(y,z));//返回绝对值 abs(x); //x为整数 //浮点数可以用fabs()swap() //交换x和y的值 int x1,y2; swap(x,y)…

数值在容器中的分位数

背景 存在一个数据序列&#xff0c;且持续有新的数据到来&#xff0c;需要知道当前到来的数据在原数据序列的分位数。 假设数据是double类型&#xff0c;序列存储在vector中。 实现方案 有多种方式可以实现该功能。 暴力法 最直观的方式是使用暴力法解决。 对vector排序&a…

c++ 常用STL容器使用简练总结

根据各容器的特点&#xff0c;作简练的总结。 array 带有STL容器接口的static c-style array大小固定&#xff0c;无法通过增加或移除元素改变它的大小&#xff0c;即size()总是返回同一值提供常量时间的随机访问功能&#xff0c;但只有at()会检查是否越界&#xff0c;其他调用…

STL rotate旋转算法

rotate() 算法会从左边选择序列的元素。它的工作机制如图 1 所示。 图1 rotate()算法的工作方式为了理解如何旋转序列&#xff0c;可以将序列中的元素想象成手镯上的珠子。rotate() 操作会导致一个新元素成为开始迭代器所指向的第一个元素。在旋转之后&#xff0c;最后一个元素…

STL unique移除连续项算法

unique() 算法可以在序列中原地移除重复的元素&#xff0c;这就要求被处理的序列必须是正向迭代器所指定的。在移除重复元素后&#xff0c;它会返回一个正向迭代器作为新序列的结束迭代器。可以提供一个函数对象作为可选的第三个参数&#xff0c;这个参数会定义一个用来代替 比…

STL reverse_copy复制算法

reverse_copy() 算法可以将源序列复制到目的序列中&#xff0c;目的序列中的元素是逆序的。定义源序列的前两个迭代器参数必须是双向迭代器。目的序列由第三个参数指定&#xff0c;它是目的序列的开始迭代器&#xff0c;也是一个输出迭代器。如果序列是重叠的&#xff0c;函数的…

STL prev_permutation排序算法

next_permutation() 是按照字典升序的方式生成的排列。当我们想以降序的方式生成排列时&#xff0c;可以使用 prev_permutation()。 prev_permutation 和 next_permutation() 一样有两个版本&#xff0c;默认使用 < 来比较元素。因为排列是以降序的方式生成的&#xff0c;所…

STL next_permutation排序算法

排列就是一次对对象序列或值序列的重新排列。例如&#xff0c;“ABC”中字符可能的排列是&#xff1a; "ABC", "ACB", "BAC", "BCA", "CAB", "CBA" 三个不同的字符有 6 种排列&#xff0c;这个数字是从 3*2*1 得…

STL lexicographical_compare字符串排序算法

两个字符串的字母排序是通过从第一个字符开始比较对应字符得到的。第一对不同的对应字符决定了哪个字符串排在首位。字符串的顺序就是不同字符的顺序。如果字符串的长度相同&#xff0c;而且所有的字符都相等&#xff0c;那么这些字符串就相等。如果字符串的长度不同&#xff0…

STL lower_bound二分查找算法

二分查找一般比顺序搜索要快&#xff0c;但要求序列中的元素是有序的。这主要是因为二分查找的搜索机制&#xff0c;图 1 说明了这种机制。 图 1 展示了在一个升序序列中二分查找 22 的过程。因为元素是升序排列的&#xff0c;所以查找机制使用小于运算符来查找元素。搜索降序序…

STL find_first_of查找算法

find_first_of() 算法可以在第一个序列中搜索第二个序列在第一个序列中第一次出现的任何元序列被搜索的范围由输入迭代器指定&#xff0c;但用于确定搜索序列的迭代器至少是正向迭代器。用 运算符来比较这两个序列中的元素&#xff0c;所以如果序列中是类类型的对象&#xff0…

STL find_end查找算法

find_end() 会在一个序列中查找最后一个和另一个元素段匹配的匹配项&#xff0c;也可以看作在一个元素序列中查找子序列的最后一个匹配项。这个算法会返回一个指向子序列的最后一个匹配项的第一个元素的迭代器&#xff0c;或是一个指向这个序列的结束迭代器。下面是一个示例&am…

STL find_if_not查找算法

find_if_not() 可以在输入迭代器所定义的范围内查找单个对象&#xff0c;该算法会在前两个参数指定的范围内查找可以使第三个参数指定的谓词 返回 false 的第一个对象。谓词不能修改传给它的对象。 find_if_not() 会返回一个指向被找到对象的迭代器&#xff0c;如果没有找到对…

STL merge和inplace_merge算法

合并操作会合并两个有相同顺序的序列中的元素&#xff0c;可以是两个升序序列&#xff0c;也可以是两个降序序列。结果会产生一个包含来自这两个输入序列的元素副本的序列&#xff0c;并且排序方式和原始序列相同。图 1 说明了其工作方式。 图1合并两个vector容器中的元素merge…

c++ 11标准模板(STL) std::map(一)

定义于头文件 <map> template< class Key, class T, class Compare std::less<Key>, class Allocator std::allocator<std::pair<const Key, T> > > class map;(1)namespace pmr { template <class Key, class T, cla…

从C语言到C++_13(string的模拟实现)深浅拷贝+传统/现代写法

前面已经对 string 类进行了简单的介绍和应用&#xff0c;大家只要能够正常使用即可。 在面试中&#xff0c;面试官总喜欢让学生自己 来模拟实现string类&#xff0c; 最主要是实现string类的构造、拷贝构造、赋值运算符重载以及析构函数。 为了更深入学习STL&#xff0c;下面我…

STL容器:map、multimap的简介与使用

map的介绍 map是关联式容器&#xff0c;它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元素。在map中&#xff0c;键值key通常用于排序和惟一的标识元素&#xff0c;而值value中存储与此键值key关联的内容。键值key和值value的类型可能不同&#xff0c;并且…

从c++标准库指针萃取器谈一下traits技法

本篇文章基于gcc中标准库源码剖析一下标准库中的模板类pointer_traits&#xff0c;并且以此为例理解一下traits技法。 说明一下&#xff0c;我用的是gcc7.1.0编译器&#xff0c;标准库源代码也是这个版本的。 还是先看一下思维导图&#xff0c;如下&#xff1a; 1. 指针萃取器p…

STL容器:set、multiset的简介与使用

set的介绍 set是按照一定次序存储元素的容器在set中&#xff0c;元素的value也标识它(value就是key&#xff0c;类型为T)&#xff0c;并且每个value必须是唯一的。set中的元素不能在容器中修改(元素总是const)&#xff0c;但是可以从容器中插入或删除它们在内部&#xff0c;se…

超详细STL之array容器使用及实现原理解析

说明一下&#xff0c;我用的是gcc7.1.0编译器&#xff0c;标准库源代码也是这个版本的。 本篇文章讲述STL中array的使用及原理。 导读 array其实是一个固定大小的数组&#xff0c;元素类型及大小在声明的时候指定&#xff0c;原型如下&#xff1a; template<typename _Tp…

判断STL容器中是否有某元素存在

vector vector<int> a; a.push_back(521); vector<int>::iterator it find(a.begin(),a.end(),521); if(it ! a.end()) cout<<"exist"<<endl; else cout<<"Not exist"<<endl;map/set set<int> s;//map类似…

STL容器适配器:priority_queue的简介与使用

priority_queue的介绍 优先队列是一种容器适配器&#xff0c;根据严格的弱排序标准&#xff0c;它的第一个元素总是它所包含的元素中最大的。此上下文类似于堆&#xff0c;在堆中可以随时插入元素&#xff0c;并且只能检索最大堆元素(优先队列中位于顶部的元素)。优先队列被实…

分治算法之二分查找

c提供一类STL函数来实现对数组中元素的检索&#xff0c;其中较为简单且应用较广的是binary_search,upper_bound和lower_bound,它们都被包含在头文件#include中。 lower_bound&#xff08;g&#xff09; 用来找以g为下界的第一个元素&#xff0c;而upper_bound&#xff08;g&am…

C++学习:双向链表List(集合)

C学习:双向链表List(集合) 简介: 在java中可能最常见的集合管理类就是List了,有各种ArrayList,LinkedList等,那么在C中同样也具有这样一种STL模板类型的链表; 列表List是使用双向链表来管理元素的,List的元素可以是任意类型的T,但是有一个要求就是必须具有赋值和拷贝能力 但…

STL容器适配器:queue的简介与使用

queue的介绍 队列是一种容器适配器&#xff0c;专门用于在FIFO上下文(先进先出)中操作&#xff0c;其中从容器一端插入元素&#xff0c;另一端提取元素。队列作为容器适配器实现&#xff0c;容器适配器即将特定容器类封装作为其底层容器类&#xff0c;queue提供一组特定的成员…

《C++标准库》学习笔记 — STL —流

《C标准库》学习笔记 — STL —流一、操控器1、原理2、自定义操控器3、控制输入的宽度二、自定义 I/O 操作符1、重载输出操作符2、输入操作符三、自定义格式化标志四、连接 Input 和 Output Stream1、以 tie 完成松耦合2、以 Stream 缓冲区完成紧耦合3、重定向标准流4、可读可写…

《More Effictive C++》学习笔记 — 技术(五)

《More Effictive C》学习笔记 — 技术&#xff08;五&#xff09;条款30 — proxy classes1、二维数组的表现2、区分 operator[] 的读写动作3、代理类&#xff08;1&#xff09;operator[]&#xff08;2&#xff09;代理类的读写区分4、限制&#xff08;1&#xff09;取地址符…

《STL源码分析》学习笔记 — 空间配置器 — 构造和析构基本工具

《STL源码分析》学习笔记 — 空间配置器 — 构造和析构基本工具一、文档注释二、construct_at 和 destroy_at三、_Construct 和 普通 _Destroy四、辅助类 _Destroy_aux 和 _Destroy_n_aux五、基于范围析构的 _Destroy 和 _Destroy_n六、destroy 和 destroy_n正如我们前面所学习…

c++ STL总结

1.vector&#xff1a; 变长数组 头文件&#xff1a;#include<vector> using namespace std;1.1定义&#xff1a; vector<typename> name; vector<int> name; vector<double> name; vector<node> name;//node是结构体类型 //如果typename也…

《STL源码分析》学习笔记 — 空间配置器 — pool_allocator

《STL源码分析》学习笔记 — 空间配置器 — pool_allocator一、__pool_alloc_base1、_M_get_free_list2、_M_round_up3、_M_allocate_chunk4、_M_refill5、_M_get_mutex6、union _Obj二、派生类 __pool_alloc1、_S_force_new2、allocate3、deallocate4、显式实例化三、pool_all…

从C语言到C++_23(多态)抽象类+虚函数表VTBL+多态的面试题

目录 1. 多态&#xff08;polymorphism&#xff09; 1.1 构成多态的两个条件 1.2 虚函数重写(覆盖) 1.3 协变构成多态 1.4 父虚子非虚构成多态 1.5 析构函数的重写 1.6 final 和 override 关键字&#xff08;C11&#xff09; 1.7 重载、覆盖、隐藏的对比 2. 抽象类&am…

《STL源码分析》学习笔记 — 空间配置器 — 标准空间配置器

《STL源码分析》学习笔记 — 空间配置器 — 标准空间配置器一、模板类 std::allocator 定义1、条件编译和语言特性支持2、比较函数3、基类二、new_allocator1、address 函数2、max_size3、allocate 和 deallocate4、construct destroy三、allocator 的部分特化1、void类型模板特…

《STL源码分析》学习笔记 — 空间配置器 — 规范与设计

《STL源码分析》学习笔记 — 空间配置器 — 规范与设计一、空间配置器的标准接口1、propagate_on_container_copy_assignment2、select_on_container_copy_construction3、is_always_equal4、rebind二、设计一个简单的空间配置器三、SGI空间配置器1、设计原则2、默认空间配置器…

stl merge用法

merge函数的作用是&#xff1a;将两个已经排好序的序列合并为一个有序的序列。 函数参数&#xff1a;merge(first1,last1,first2,last2,result,compare); firs1t为第一个容器的首迭代器&#xff0c;last1为第一个容器的末迭代器&#xff1b; first2为第二个容器的首迭代器&…

c++之STL总结

c中的STL(Stand Template Library)提供了最基本的数据结构和算法,功能十分强大。主要分为容器(数组&#xff0c;队列&#xff0c;链表&#xff0c;栈&#xff0c;集合等等),迭代器(一种对象&#xff0c;用来遍历容器中的元素)和常见算法(排序,反转等) 文章目录容器字符串vector…

STL容器适配器:stack的简介与使用

stack的介绍 stack是一种容器适配器&#xff0c;专门用在具有先进后出操作的上下文环境中&#xff0c;其删除只能从容器的一端进行元素的插入与提取操作。stack是作为容器适配器被实现的&#xff0c;容器适配器即是对特定类封装作为其底层的容器&#xff0c;并提供一组特定的成…

vector、list、deque的优缺点区别

vector 优点&#xff1a; 支持下标的随机访问&#xff0c;间接的就很好的支持了排序、查找、堆等等算法 缺点&#xff1a; 头部和中间的插入删除效率低。时间复杂度 O(N)&#xff0c;因为需要搬移数据实现插入数据空间不够需要增容&#xff0c;增容需要开辟新空间、拷贝数据…

STL stable_sort排序算法

sort() 算法可能会改变相等元素的顺序&#xff0c;有时候这不是我们想要的。假设有一个保存某种事务的容器&#xff0c;或许是银行账户。进一步假设&#xff0c;在处理它们之前&#xff0c;为了能够有序更新这些账户&#xff0c;需要按照账号对这些事务排序。如果出现相等事务的…

容器:forward_list用法及示例

forward_list用法及示例 文章目录forward_list用法及示例简介容器特性使用成员函数几种创建方式示例&#xff1a;demo1:demo2: 获取元素个数(forward_list没有size()成员函数)demo3: 可使用std::advance()更便捷的移动迭代器(注意不要越界)简介 forward_list是单链表容器 是 C…

容器:deque用法及示例

deque用法及示例 文章目录deque用法及示例一、简介二、容器特性三、使用成员函数几种创建方式示例&#xff1a;一、简介 deque 是 double-ended queue 的缩写&#xff0c;又称双端队列容器。 二、容器特性 deque 擅长在序列头部添加或删除元素&#xff0c;所耗费的时间复杂度…

SLT容器使用技巧以及注意事项

文章目录empty()和size()都可以判断容器是否为空&#xff0c;谁更好&#xff1f;array 为何比 普通数组 安全vector容器的 容量&#xff08;capacity&#xff09;和 大小&#xff08;size&#xff09;的区别vector添加元素push_back()和emplace_back()的区别vector插入元素inse…

STL源码剖析 随心笔记01

参考资料&#xff1a; 《STL源码剖析》herongwei——图解源码 STL六大组件 设计配置器&#xff08;包括内存池&#xff0c;构造 析构函数等&#xff09; 包括 allocator 和 constructor&#xff0c;分别定义在 allocator.h 和 construct.h 中。 allocator 负责空间的配置与回收…

STL学习笔记-顺序容器(vector, list, deque)的操作

主要知识点&#xff1a; 容器定义的类型别名&#xff1b;迭代器begin指向容器的第一个元素&#xff0c;end不是指向最后一个元素&#xff0c;而是指向最后一个元素的后面一个位置&#xff1b;vector和deque能通过下标索引和迭代器两种方式访问&#xff0c;list不同使用下标索引…

《STL源码分析》学习笔记 — 空间配置器 — 内存基本处理工具

《STL源码分析》学习笔记 — 空间配置器 — 内存基本处理工具一、uninitialized_copy二、uninitialized_fill三、uninitialized_fill_n四、stl_uninitialized.h 中的扩展内部函数五、stl_uninitialized.h 中的扩展外部函数stl_uninitialized.h 文件中提供了用于处理未初始化内存…

【C++】STL---vector

STL---vector 一、vector 的介绍二、vector 的模拟实现1. 容量相关的接口&#xff08;1&#xff09;size&#xff08;2&#xff09;capacity&#xff08;3&#xff09;reserve&#xff08;4&#xff09;resize&#xff08;5&#xff09;empty 2. [] 重载3. 迭代器4. 修改数据相…

leetcode 力扣刷题哈希表初尝试

哈希表 刷题初尝试 哈希表基础知识242. 有效的字母异位词383. 赎金信49. 字母异位词分组438. 找到字符串中所有字母异位词 哈希表基础知识 哈希表是一种数据结构&#xff0c;也叫散列表。哈希表中存储的是键值对&#xff0c;即(key&#xff0c;value)&#xff0c;根据key直接查…

全排列 next_permutation

next_permutation是求下一组排列数&#xff08;按字典序升序&#xff09; 需要知道全排列一共有多少种 #include <bits/stdc.h> using namespace std; int n,a[100]; int main() {cin>>n;//对1-n的数进行全排列 for(int i1;i<n;i) a[i]i;for(int i1;i<24…

leetcode 力扣刷题 数组交集(数组、set、map都可实现哈希表)

数组交集 349. 两个数组的交集排序&#xff0b;双指针数组实现哈希表unordered_setunordered_map 350. 两个数组的交集Ⅱ排序 双指针数组实现哈希表unordered_map 349. 两个数组的交集 题目链接&#xff1a;349. 两个数组的交集 题目内容如下&#xff0c;理解题意&#xff1a…

STL容器:deque的简介与使用

deque的原理介绍 deque(双端队列)&#xff1a;是一种双开口的"连续"空间的数据结构&#xff0c;双开口的含义是&#xff1a;可以在头尾两端进行插入和删除操作&#xff0c;且时间复杂度为O(1)&#xff0c;与vector比较&#xff0c;头插效率高&#xff0c;不需要搬移…

C++与STL再回顾

因为暑假和秋季学期学习太过不认真&#xff0c;以至于至今对一些基础性质的东西尚有许多疑问&#xff0c;虽然平时做题没什么影响&#xff0c;可总还是个隐患。今天就再回头看一看C与STL里面的一些基本知识&#xff0c;在短时间内把这些东西复习一&#xff0c;同时也把以前没搞…

C++标准模板库STL (未完)

概述 STLstandard template library是 C 标准库的一部分&#xff0c;无需单独安装&#xff0c;只需#include 头文件 什么是模板&#xff1f;见c面向对象程序设计中模板一节 顺序性容器 vector 向量 变长数组 声明 vector<类型名> 变量名[数组长度];类型名可以是已有…

STL rotate_copy旋转算法

rotate_copy() 算法会在新序列中生成一个序列的旋转副本&#xff0c;并保持原序列不变。rotate_copy() 的前 3 个参数和 copy() 是相同的&#xff1b;第 4 个参数是一个输出迭代器&#xff0c;它指向目的序列的第一个元素。这个算法会返回一个目的序列的输出迭代器&#xff0c;…

C++STL常见面试题

1.C STL 之所以得到广泛的赞誉&#xff0c;也被很多人使用&#xff0c;不只是提供了像vector, string, list等方便的容器&#xff0c;更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组&#xff0c;list封装了链表&#xff0c;map和set封装了二…

C++ STL无序关联式容器(详解)

STL无序关联式容器 继 map、multimap、set、multiset 关联式容器之后&#xff0c;从本节开始&#xff0c;再讲解一类“特殊”的关联式容器&#xff0c;它们常被称为“无序容器”、“哈希容器”或者“无序关联容器”。 注意&#xff0c;无序容器是 C 11 标准才正式引入到 STL 标…

C++:list使用以及模拟实现

list使用以及模拟实现 list介绍list常用接口1.构造2.迭代器3.容量4.访问数据5.增删查改6.迭代器失效 list模拟实现1.迭代器的实现2.完整代码 list介绍 list是一个类模板&#xff0c;加<类型>实例化才是具体的类。list是可以在任意位置进行插入和删除的序列式容器。list的…

库中如何实现vector

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶 &#x1f43b;推荐专栏2: &#x1f354;&#x1f35f;&#x1f32f;C语言进阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f…

STL:deque容器小案例

有5名选手&#xff1a;选手ABCDE&#xff0c;10个评委分别对每一名选手打分&#xff0c;去除最高分&#xff0c;去除评委中最低 分&#xff0c;取平均分 创建五名选手&#xff0c;放到vector中遍历vector容器&#xff0c;取出来每一个选手&#xff0c;执行for循环&#xff0c;…

STL:vector容器常用操作

#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string.h> #include <string> #include <vector> #include<algorithm> using namespace std;/* vector迭代器*/ void test01() {vector<int> v;v.push_back(1);v.push_ba…

给你两个集合,要求{A} + {B}

先看题&#xff1a; 看完题后你会觉得&#xff1a;哇&#xff0c;好简单&#xff0c;STL一下就出来啦。 #include <iostream> #include <set>using namespace std;int main() {int n, m;while (cin >> n >> m) {set<int> set_a;for (int i 0;…

STL:string容器常用操作

#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string.h> #include <string> using namespace std; //string的构造函数 void test01() {string str;string str1("hello");string str2(str1);string str3(5, k);cout << …

STL move移动算法

move() 算法会将它的前两个输入迭代器参数指定的序列移到第三个参数定义的目的序列的开始位置&#xff0c;第三个参数必须是输出迭代器。这个算法返回的迭代器指向最后一个被移动到目的序列的元素的下一个位置。 这是一个移动操作&#xff0c;因此无法保证在进行这个操作之后&…

【STL源码剖析】总结笔记(6):iterator的设计与神奇的traits

【STL源码剖析】总结笔记&#xff08;6&#xff09;&#xff1a;iterator的设计与神奇的traits 00 写在前面 上次我们从list入手&#xff0c;说明了list的iterator在实现过程中的巧妙之处。link 而这也是iterator在设计时的关键所在。 01 iterator和traits iterator是一种…

【STL源码剖析】总结笔记(5):认识迭代器的好帮手--list

00 写在前面 说完vector&#xff0c;也了解了分配器&#xff08;alloctor&#xff09;&#xff0c;接下来我们说说比较具有代表性的容器list。 【STL源码剖析】总结笔记&#xff08;3&#xff09;&#xff1a;vector初识 【STL源码剖析】总结笔记&#xff08;4&#xff09;&am…

C++学习笔记——map

本文部分内容来自https://www.cnblogs.com/hailexuexi/archive/2012/04/10/2440209.html 1.简介 map是一类关联式容器。使用它之前需要包含头文件&#xff1a;<map>。map可以自动建立Key &#xff0d; value的对应。key 和 value可以是任意你需要的类型。例如&#xff…

【STL源码剖析】总结笔记(1):开篇

00 写在前面 STL作为C标准库中的重要组成部分&#xff0c;在学习C过程中非常重要。这个可以复用的组件库更像是一个包罗万象的“框架”。 侯捷老师对于STL的了解之深也使我受益匪浅。而《STL源码剖析》这本书也是集精华于一体&#xff0c;深度探索了对于STL的各个部分。配合老…

ICPC训练联盟2021寒假冬令营(7)_2021.01.26_笔记

文章目录试题链接学习笔记 - CSTL、贪心算法CSTL迭代器STL算法关联式容器贪心算法介绍使用贪心法能否得到最优解&#xff0c;是必须加以证明的。体验贪心法内涵的实验范例贪心法的经典问题背包问题求解背包问题的贪心策略求解背包问题的算法步骤任务调度问题求解任务调度的算法…

ICPC训练联盟2021寒假冬令营(6)_2021.01.25_笔记

文章目录试题链接学习笔记 - C STL简介STL容器实验序列式容器关联式容器集合容器A - The Blocks Problem (POJ 1208, UVA 101)中文释义解题分析解题代码B - Broken Keyboard (a.k.a. Beiju Text) (UVA 11988)中文释义解题分析解题代码C - Babelfish (POJ 2503)中文释义解题分析…

c++ 中 vector、list 、set 、map等相关容器的区别

1. vector vector 封装了数组 &#xff0c;是有序的。在内存中是一块连续的内存空间进行存储。但是不支持用户指定空间大小。系统首先分配一个非常大的内存空间进行预备存储&#xff0c;当超过此分配的空间时在进行整体重新分配一块内存空间存储。这就让人感觉可以不指定vecto…

《C++标准库》学习笔记 — STL — 容器与算法

《C标准库》学习笔记 — STL — 容器与算法一、reverse 迭代器二、Funtion Object1、pass by value 的函数对象2、获得结果的办法&#xff08;1&#xff09;通过引用传值方式传递函数对象&#xff08;2&#xff09;利用 for_each 算法的返回值三、Predicate 和 remove_if四、la…

C++ string 的用法

目录 string类string类接口函数及基本用法构造函数&#xff0c;析构函数及赋值重载函数元素访问相关函数operator[]atback和front 迭代器iterator容量操作size()和length()capacity()max_sizeclearemptyreserveresizeshrink_to_fit string类对象修改操作operatorpush_backappen…

C++ STL list及函数基本使用介绍

STL中的list基本使用介绍1. list存储结构2. 相关函数使用2.1 assign2.2 back2.3 begin2.4 empty2.5 end2.6 erase2.7 front2.8 get_allocator2.9 insert2.10 max_size2.11 merge2.12 pop_back2.13 pop_front2.14 push_back2.15 push_front2.16 rbegin2.17 remove2.18 remove_if…

C++ template--类模版Stack的实现

类模版Stack的实现 //stack1.hpp #include<vector> #include<stdexcept> using namespace std;template <typename T> class Stack { private:vector<T> elems; public:void push(T const&);void pop();T top() const;bool empty() const{return e…

<C++> STL_unordered_set/map

1.unordered系列关联式容器 在C98中&#xff0c;STL提供了底层为红黑树结构的一系列关联式容器&#xff0c;在查询时效率可达到O(logN)&#xff0c;即最差情况下需要比较红黑树的高度次&#xff0c;当树中的节点非常多时&#xff0c;查询效率也不理想。最好的查询是&#xff0…

STL copy_if复制算法

copy_if() 算法可以从源序列复制使谓词返回 true 的元素&#xff0c;所以可以把它看作一个过滤器。前两个参数定义源序列的输入迭代器&#xff0c;第三个参数是指向目的序列的第一个位置的输出迭代器&#xff0c;第 4 个参数是一个谓词。会返回一个输出迭代器&#xff0c;它指向…

优先级队列priority_queue以及仿函数的使用

目录 优先级队列priority_queuepriority_queue的模拟实现仿函数 优先级队列priority_queue 优先级队列priority_queue是一种容器适配器&#xff0c;根据严格的弱排序标准&#xff0c;它默认第一个元素总是它所包含的元素中最大的 优先级队列默认使用vector作为底层存储数据的…

STL is_permutation排序算法

is_permutation() 算法可以用来检查一个序列是不是另一个序列的排列&#xff0c;如果是&#xff0c;会返回 true。下面是在这个算法中使用 lambda 表达式的示例&#xff1a; std::vector<double> data1{ 44.5, 22.0, 15.6, 1.5 }; std::vector<double> data2{ 22.…

STL upper_bound和lower_bound函数

声明&#xff1a; 首先包含头文件#include<algorithm> 这里的两个函数所运用的对象必须是非递减的序列&#xff08;也就是数组&#xff0c;数组必须是非递减的&#xff09;&#xff0c;只有这样才可以使用upper_bound和lower_bound这两个函数。 还有一点&#xff0c;就…

STL equal_range二分查找算法

equal_range() 可以找出有序序列中所有和给定元素相等的元素。它的前两个参数是指定序列的两个正向迭代器&#xff0c;第三个参数是要查找的元素。这个算法会返回一个 pair 对象&#xff0c;它有两个正向迭代器成员&#xff0c;其中的 first 指向的是不小于第三个参数的一个元素…

STL upper_bound二分查找算法

二分查找一般比顺序搜索要快&#xff0c;但要求序列中的元素是有序的。这主要是因为二分查找的搜索机制&#xff0c;图 1 说明了这种机制。 图 1 展示了在一个升序序列中二分查找 22 的过程。因为元素是升序排列的&#xff0c;所以查找机制使用小于运算符来查找元素。搜索降序序…

《STL源码分析》学习笔记 — STL概论与版本简介

《STL源码分析》学习笔记 — STL概论与版本简介一、STL六大组件二、GNU源代码开放精神三、HP实现版本四、SGI STL实现版本1、文件分布2、SGI STL 文件分布与简介&#xff08;1&#xff09;特定版本的C头文件&#xff08;2&#xff09;其他目录&#xff08;3&#xff09;配置文件…

STL binary_search二分查找算法

前面讲到的搜索算法都是对序列进行顺序搜索&#xff0c;而且没有事先对元素进行排序的要求。二分查找一般比顺序搜索要快&#xff0c;但要求序列中的元素是有序的。这主要是因为二分查找的搜索机制&#xff0c;图 1 说明了这种机制。 图1 二分查找图 1 展示了在一个升序序列中二…

STL partition_point分割算法

可以用 partition_point() 算法来获取分区序列中第一个分区的结束迭代器&#xff0c;它的前两个参数定义检查范围的正向迭代器&#xff0c;最后一个参数是用来对序列进行分区的谓词。我们通常不知道每个分区中元素的个数&#xff0c;这个算法使我们能够访问和提取这些分区中的元…

STL partition_copy分割算法

partition_copy() 算法以和 stable_partition() 相同的方式对序列进行分区&#xff0c;但那些使谓词返回 true 的元素会被复制到一个单独的序列中&#xff0c;使谓词返回 false 的那些元素会被复制到第三个序列中。这个操作不会改变原始序列。 原始序列由前两个参数指定&#…

STL find_if查找算法

find_if() 同 find() 一样&#xff0c;为在输入迭代器所定义的范围内查找单个对象的算法&#xff0c;它可以在前两个参数指定的范围内查找可以使第三个参数指定的谓词返回 true 的第一个对象。谓词不能修改传给它的对象。 find_if() 会返回一个指向被找到对象的迭代器&#xf…

【C++ Vector】dynamic array

目录 Vector Vector能力 大小&#xff08;size&#xff09;和容量&#xff08;capacity&#xff09; Vector的操作 构建、复制和销毁 非更易型操作 赋值 元素访问 迭代器相关函数 安插和移除 Class vector Vector vector本身是“将元素至于dynamic array&#xff08…

C++ string模拟实现

目录 模拟实现string的结构接口函数的实现构造函数和析构函数迭代器的实现operator[]reserve和resize三种尾插函数insertfinderasesubstr赋值重载拷贝构造比较大小流提取&#xff0c;流插入 完整代码 模拟实现string的结构 前面我们知道了string的结构比较复杂&#xff0c;这里…

STL vector基本用法

目录 vector介绍vector的使用vector的定义vector接口函数构造函数和赋值重载迭代器元素访问vector容量相关函数vector增加 删除 修改操作关系操作符 vector介绍 vector是可变大小数组的序列容器。像数组一样&#xff0c;vector也采用的连续存储空间来存储元素。也就是意味着可…

vactor中迭代器失效问题

目录 什么是迭代器失效导致迭代器失效的操作VS和g环境下对与迭代器失效的态度 什么是迭代器失效 迭代器的底层其实就是一个指针&#xff0c;或者对指针进行了封装 vector的迭代器就是一个指针T* 一个迭代器指向某一个空间&#xff0c;此时这块空间被释放了&#xff0c;这个迭…

【leetcode 力扣刷题】数组交集(数组、set、map都可实现哈希表)

数组交集 349. 两个数组的交集排序&#xff0b;双指针数组实现哈希表unordered_setunordered_map 350. 两个数组的交集Ⅱ排序 双指针数组实现哈希表unordered_map 349. 两个数组的交集 题目链接&#xff1a;349. 两个数组的交集 题目内容如下&#xff0c;理解题意&#xff1a…

STL list基本用法

目录 list的使用构造函数和赋值重载迭代器(最重要)容量相关插入删除元素操作reversesortuniqueremovesplice list的底层实际是双向链表结构 list的使用 构造函数和赋值重载 构造函数说明list()无参构造list (size_type n, const value_type& val value_type())构造的li…

C++ STL vector 容器

文章目录 引用头文件初始化赋值1. 一维 vector2. 二维 vector 遍历 vector 容器1. 下标索引遍历2. 迭代器遍历3. auto4. range for循环5. for_each vector 常用方法判断 vector 是否空返回数组长度尾部插入元素删除尾部元素调整数组大小获取迭代器插入元素删除元素排序 sort翻转…

STL-常用容器-queue 容器(队列)

1 queue 基本概念 概念&#xff1a;Queue是一种先进先出(First In First Out,FIFO)的数据结构&#xff0c;它有两个出口。 队列容器允许从一端新增元素&#xff0c;从另一端移除元素 队列中只有队头和队尾才可以被外界使用&#xff0c;因此队列不允许有遍历行为 队列中进数据…

C++ STL list容器使用教程

文章目录 引用头文件初始化赋值遍历 list 容器迭代器list 常用方法删除元素插入元素 合并列表 list 翻译为列表&#xff0c;列表容器被实现为双向链表&#xff0c;因此它提供了对其数据的双向顺序访问。 List 不提供快速随机访问&#xff0c;它只支持双向顺序访问。 List 允许…

算法竞赛备赛之数学知识训练提升,暑期集训营培训

1.质数 在大于1的整数&#xff0c;如果质包含1和本身这两个约数&#xff0c;就称之为素数/质数。 1.质数的判定&#xff08;试除法&#xff09; 优化后的&#xff1a; #include<iostream> #include<algorithm> ​ using namespace std; ​ bool is_prime(int n…

C++打怪升级(十一)- STL之list

~~~~ 前言1. list是什么2. list接口函数的使用1. 构造相关默认构造n个val构造迭代器范围构造拷贝构造 2 赋值运算符重载函数2 析构函数3 迭代器相关begin 和 endrbegin 和rend 4 容量相关emptysize 5 元素访问相关frontback 6 修改相关push_backpop_backpush_frontpop_frontins…

【C++】STL---string

string类 一、C语言中的字符串二、string类三、模拟实现 string 类0. string 类的声明1. 构造函数2. 析构函数3. 拷贝构造函数4. 赋值运算符重载5. 迭代器6. 元素访问&#xff1a;[] 重载7. 流插入与流提取重载8. 与容量相关的接口&#xff08;1&#xff09;size&#xff08;2&…

C++:stack和queue的使用以及底层实现

stack和queue的使用以及底层实现 1.适配器模式2.stack的介绍和使用2.1stack的介绍2.2stack的使用 3.queue的介绍和使用3.1queue的介绍3.2queue的使用 4.仿函数介绍5.priority_queue的介绍和使用5.1priority_queue的介绍5.2priority_queue的使用 6.deque的介绍6.1deque的实现原理…

【C++学习】STL容器——stack和queue

目录 一、stack的介绍和使用 1.1 stack的介绍 1.2 stack的使用 1.3 stack的模拟实现 二、queue的介绍和使用 2.1 queue的介绍 2.2 queue的使用 2.3 queue的模拟实现 三、priority_queue的介绍和使用 3.1 priority_queue的介绍和使用 3.2 priority_queue的使用 3.4 p…

[STL]容器小结+函数对象+谓词+内建函数对象+函数对象适配器+算法(汇总)

参考资源&#xff1a;1 黑马程序员 参考资源&#xff1a;2 《C标准库 - 侯捷》中的 5.2 节-容器 文章目录1 各容器的特点总结及使用场景2 各个容器的使用场景3 函数对象3.1 函数对象的基本概念3.2 函数对象实例演示解释3.3 函数对象的优势4 谓词4.1 谓词的基本概念4.2 一元谓词…

[STL]深拷贝和浅拷贝问题(内存泄露+内存未释放+调用拷贝构造的五种情况)

通过三段代码详细解释浅拷贝和深拷贝带来的问题和解决方案&#xff0c;例如内存泄露 or 内存未释放。明确重载拷贝构造函数的重要性&#xff0c;以及出现拷贝构造函数的几种情况。 复习时间&#xff1a;2021-07-30 神拷贝 浅拷贝 内存泄露 的重载 重载拷贝构造函数 还有析构函数…

[STL]map/multimap基本用法及自定义排序

C STL标准模板库的总结学习。文章中对于map/multimap常见api使用进行解释说明&#xff0c;其中和set使用一致的部分不加过多实例说明&#xff0c;重点关注数据插入的部分。 文章目录map基本概念及其特性map构造函数map插入数据元素操作&#xff08;重点&#xff09;map大小和赋…

[STL]set/multiset常见用法实例+pair对组概念

C STL标准模板库的总结学习。文章中对于set/multisetc常见api使用进行详细的实例说明。同时最后补充了pair对组的概念&#xff0c;主要关注set与其他容器的特别之处。 复习时间&#xff1a;2021-07-30 set/multiset的特性的区别不是很重要&#xff0c;这边少了个unordered_set&…

位图的实现,布隆过滤器

位图&#xff1a; 概念&#xff1a; 由于位图是通过一个比特位来判断是不是在范围里面的&#xff0c;所以其对应的时间复杂度都是O(1)的。 位图的实现&#xff1a; 如上图所示&#xff1a; 上图对应的就是3个字节&#xff0c;即24个比特位 要想实现位图&#xff0c;就得知道…

[STL]list基本用法解释

C STL标准模板库的总结学习。文章中对于list容器常见的API使用总结&#xff0c;由于基本函数使用和vector和deque基本一致&#xff0c;所以缺少一些实例演示。 复习时间 2021-07-30 好处 坏处 例如插入和删除时间都是常数的&#xff0c;坏处就是查询比较慢而且需要额外空间保存…

[STL]stack和queue基本API用法及比对

C STL标准模板库的总结学习。文章中对于stack(栈)&#xff0c;queue&#xff08;队列&#xff09;基本api用法进行总结&#xff0c;内容相对简单&#xff0c;更多应该关注stack和queue的区别和共性。 例如区别&#xff1a;先进先出的队列&#xff0c;先进后出的栈。 共性&#…

[STL]String基本用法解释+代码实例

C STL标准模板库的总结学习。文章中对于String的比较常见用法进行总结。 复习时间 2021-07-30 文章目录1 string 容器的特性1.1 string和char* 比较1.2 string 和 char* 的转换2 string初始化3 string拼接操作4 string查找和替换操作5 string 的比较操作6 string子串操作7 stri…

C++ STL(第一篇:概述)

STL是Stander Temple Library&#xff08;标准模板库&#xff09;的简称。它是一套功能强大的C模板类&#xff0c;提供了通用的模板类和函数&#xff0c;这些模板类和函数可以实现多种流行的常用的算法和数据结构。 STL提供了六大组件&#xff0c;彼此可以组合套用&#xff1a…

【C++精华铺】9.STL string

目录 1. string类的优势 2. string类的常用接口 2.1 常用构造 1. 空串构造&#xff1a;string(); 2. C串构造&#xff1a;string(const char* s); 3. 拷贝构造&#xff1a;string(const string& str); 4. 字符填充构造&#xff1a;string(size_t n, char c); 5. 迭代…

【STL源码剖析】总结笔记(12):仿函数(Functors)与适配器(Adapter)

00 写在前面 仿函数&#xff08;functors&#xff09;和适配器&#xff08;adapter&#xff09;就到了整个STL的最后部分。虽然这两部分内容不是很多&#xff0c;可以放在一起说。 但作为STL六大部件中的两大部件&#xff0c;这两者还是有很多设计的精华在里面&#xff0c;值…

【STL源码剖析】总结笔记(7):巧妙的deque

00 写在前面 【STL源码剖析】总结笔记&#xff08;6&#xff09;&#xff1a;iterator的设计与神奇的traits 在掌握了迭代器的基本设计原理之后&#xff0c;我们就可以来看剩下的序列式容器的实现了。这时我们可以把注意力更多地集中在每一个容器本身的设计上。 01 概述 d…

map的用法

http://blog.csdn. net/diaolingle/article/details/51388585 上面的链接包含了map的大部分基本用法 这里介绍含多个参数的map用法&#xff0c; 和pair的用法 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #incl…

C++:模板初阶以及string类使用

C&#xff1a;模板初阶以及string类使用 模板的简单认识1.泛型编程2.函数模板模板的原理图函数模板格式函数模板实例化非模板函数和模板函数的匹配原则 3.类模板类模板的定义格式类模板的实例化 string1.string简介2.string常用的接口 题目练习1.字符串相加2.字符串里面最后一个…

STL (Spruce) 字幕

STL (Spruce) 字幕 是一种简单的字幕格式&#xff0c;类似CSV 00:00:09:02 , 00:00:13:04 , ♪私の愛は出会った瞬間から♪ 00:00:13:07 , 00:00:17:10 , ♪私の生活はすべてあなたに占領されている♪ 00:00:17:13 , 00:00:21:15 , ♪突然の重力の中で♪ 00:00:21:16 , 00:00:…

C++标准库---旋转元素rotate()rotate_copy()

旋转元素次序rotate(beg,newBeg,end)将区间[beg,end)内的元素进行旋转&#xff0c;执行后*newBeg成为新的第一元素&#xff1b;调用者必须确保newBeg是区间[beg,end)内的一个有效位置&#xff0c;否则会引发未定义的行为&#xff1b; 复杂度&#xff1a;线性 代码示例&#xf…

全排列问题的递归、STL实现

原文代码地址&#xff1a; http://blog.csdn.net/morewindows/article/details/7370155&#xff08;原文很详细&#xff0c;博主很强大&#xff01;&#xff09; //全排列的递归实现#include <stdio.h>#include <string.h>#include<iostream>using namespac…

leetcode 力扣刷题 两数/三数/四数之和 哈希表和双指针解题

两数/三数/四数之和 题目合集 哈希表求解1. 两数之和454. 四数相加Ⅱ 双指针求解15.三数之和18. 四数之和 这个博客是关于&#xff1a;找出数组中几个元素&#xff0c;使其之和等于题意给出的target 这一类题目的&#xff0c;但是各个题之间又有些差异&#xff0c;使得需要用不…

C++ STL迭代器适配器(详解)

STL迭代器适配器 C STL迭代器适配器是什么&#xff1f; 通过学习 C STL 标准库中的容器我们知道&#xff0c;无论是序列式容器还是关联式容器&#xff08;包括哈希容器&#xff09;&#xff0c;要想遍历容器中存储的数据&#xff0c;就只能用使用该容器模板类中提供的迭代器。…

【C++精华铺】10.STL string模拟实现

1. 序言 STL&#xff08;标准模板库&#xff09;是一个C标准库&#xff0c;其中包括一些通用的算法、容器和函数对象。STL的容器是C STL库的重要组成部分&#xff0c;它们提供了一种方便的方式来管理同类型的对象。其中&#xff0c;STLstring是一种常用的字符串类型。 STLstrin…

《Effective STL》读书笔记(一):容器

容器类型&#xff1a; 标准STL序列容器&#xff1a;vector, string, deque, list标准STL关联容器&#xff1a;set, multiset, map, multimap非标准序列容器slist和rope非标准关联容器&#xff1a;hash_set, hash_multiset, hash_map, hash_multimap标准的非STL容器&#xff1a…

《Effective STL》读书笔记(二):vector和string

vector 和 string 优先于动态分配数组 当使用new动态分配内存时&#xff0c;我们需要关注以下内容 必须保证动态分配的内存会被delete&#xff0c;否则会造成资源泄露必须确保使用了正确的delete形式。如果分配了单个对象&#xff0c;则必须使用delete&#xff1b;如果分配了…

【数据结构】二叉树的链式结构

【数据结构】二叉树的链式存储结构 二叉树的存储结构 typedef int BTDataType; // 二叉树的结构 typedef struct BinaryTreeNode {BTDataType data; // 树的值struct BinaryTreeNode *left; // 左孩子struct BinaryTreeNode *right;// 右孩子 } BinaryTreeNode;二…

STL-常用算法-拷贝和替换

1 copy&#xff08;容器内指定范围的元素拷贝到另一容器中 &#xff09; 功能描述&#xff1a; 容器内指定范围的元素拷贝到另一容器中 函数原型&#xff1a; copy(iterator beg, iterator end, iterator dest); // 按值查找元素&#xff0c;找到返回指定位置迭代器&#xf…

STL-常用算法-集合

1 set_intersection 功能描述&#xff1a; 求两个容器的交集 函数原型&#xff1a; set_intersection(iterator beg1, iterator end1, iterator beg2, iterator end2, iterator dest); // 求两个集合的交集 // 注意:两个集合必须是有序序列 // beg1 容器1开始迭代器 // end1 …

list【1】介绍与使用(超详解哦)

list的介绍与使用 引言list介绍接口使用默认成员函数迭代器容量元素访问数据修改 list的算法接口总结 引言 继vector之后&#xff0c;我们继续来介绍STL容器&#xff1a;list 对于容器的使用其实有着类似的模式&#xff0c;参考之前vector的使用可以让我们更快的上手&#xff…

c++ 面试题(2)--STL ,新特性

目录 1 STL 1 请说说 STL 的基本组成部分 2 请说说 STL 中常见的容器&#xff0c;并介绍一下实现原理 3 说说 STL 中 map hashtable deque list 的实现原理 4 请你来介绍一下 STL 的空间配置器&#xff08;allocator&#xff09; 6 迭代器用过吗&#xff1f;什么时候会失…

C++ STL deque容器使用教程

文章目录 引用头文件初始化赋值遍历 deque 容器迭代器deque 常用方法入队 push出队 pop deque 翻译为双端队列&#xff0c;双端队列提供了从任意端插入和删除数据的有效方法。 引用头文件 #include <deque>初始化赋值 deque<int> duq; // 初始化双端空队列 deq…

如何熟练使用vector?

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶 &#x1f43b;推荐专栏2: &#x1f354;&#x1f35f;&#x1f32f;C语言进阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f…

STL ---- list 使用

目录 初始化 追加和删除 迭代器 常用的常量 插入数据 删除数据 其他函数 初始化 使用assign函数初始化. l_num.assign(3, 5);l_data.assign({1, 2, 3, 4}); 或者定义的时候就初始化: list<int> l_data{1,2,3,4,5}; 追加和删除 l_num.push_back(10); // 向后追…

仿函数:对优先级队列的优化【C++】

仿函数&#xff1a;对优先级队列的优化【C】 一.仿函数1.1 定义形式1.2 使用 二.仿函数对优先级队列的优化2.1 优先级队列2.1.1普通版i. 构造函数ii. 向下调整 2.2.1 用仿函数优化i. 回顾库ii. 实现大小堆的关键iii.优化思路iiii. 比较仿函数的实现iiiii. 优先级队列类的调整ii…

从C语言到C++_38(C++的IO流+空间适配器)STL六大组件联系

目录 1. C语言的输入和输出和流 2. C的IO流 2.1 C标准IO流 2.2 C文件IO流 2.3 stringstream&#xff08;字符流&#xff09; 3. 空间配置器&#xff08;了解&#xff09; 3.1 一级空间适配器 3.2 二级空间配置器 3.3 二级空间适配器的空间申请 3.4 二级空间配置器的空…

#516. 「LibreOJ β Round #2」DP 一般看规律 stl容器

题目链接 题意&#xff1a;给你一个n个数的数组&#xff0c; 由若干询问&#xff0c;每次询问把数组中所有值为x的改为y&#xff0c; 求两个相同数最近的距离是多少。 思路&#xff1a;维护一个map 记录所有下标为x出现的位置&#xff0c; 每次查找更新即可。 #include <…

STL理解

STL初步 解释 STL Standard Template Library&#xff0c;标准模板库&#xff0c;惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。这可能是一个历史上最令人兴奋的工具的最无聊的术语。从根本上说&…

[STL]六大组件介绍(目录 全)

一般介绍 STL&#xff08;Standard TemplateLibrary&#xff09;&#xff0c;即标准模板库&#xff0c;是一个具有工业强度的&#xff0c;高效的C程序库。它被容纳于C标准程序库&#xff08;C Standard Library&#xff09;中&#xff0c;是ANSI/ISOC标准中最新的也是极具革命性…

【C++标准模板库STL】map, unordered_map, set, unordered_set简介与常用函数

文章目录 map是STL中的标准容器&#xff0c;以键值对的形式存储&#xff0c;即为哈希表&#xff0c;并且是有序的unordered_map也是表示哈希表的容器&#xff0c;但是没有顺序&#xff0c;unordered_map查询单个key的时候效率比map高&#xff0c;但是要查询某一范围内的key值时…

vector【1】介绍与使用(超详解哦)

vector 引言vector介绍接口使用默认成员函数迭代器容量元素访问数据修改 总结 引言 在string部分&#xff0c;我们详细的介绍了各个接口的使用&#xff0c;虽然其不属于STL的一部分&#xff0c;但是接口与STL中的容器相似&#xff0c;所以我们在学习使用vector等STL容器的使用…

vector使用以及模拟实现

vector使用以及模拟实现 vector介绍vector常用接口1.构造2.迭代器3.容量4.增删查改5.练习 vector模拟实现1.迭代器失效2.反向迭代器3.完整代码 vector介绍 和我们原来讲的string不同&#xff0c;vector并不是类&#xff0c;是一个类模板&#xff0c;加<类型>实例化以后才…

【C++】map set

map & set 一、关联式容器二、键值对三、树形结构的关联式容器1. set&#xff08;1&#xff09;set 的介绍&#xff08;2&#xff09;set 的使用 2. multiset3. map&#xff08;1&#xff09;map 的介绍&#xff08;2&#xff09;map 的使用 4. multimap 四、map 和 set 的…

【C++初阶】STL详解(一)string类

本专栏内容为&#xff1a;C学习专栏&#xff0c;分为初阶和进阶两部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握C。 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;C &#x1f69a;代码仓库&#xff1a;小小unicorn的代码仓库&…

【C++初阶】STL详解(一)string类

本专栏内容为&#xff1a;C学习专栏&#xff0c;分为初阶和进阶两部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握C。 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;C &#x1f69a;代码仓库&#xff1a;小小unicorn的代码仓库&…

红黑树的插入与验证

红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或 Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树确保没有一条路 径会比其他路径长出俩倍&#xff0c;因而是接近平衡的…

【C++】STL 容器 - list 双向链表容器 ① ( 容器特点 | 容器操作时间复杂度 | 构造函数 )

文章目录 一、 list 双向链表容器简介1、容器特点2、容器操作时间复杂度3、遍历访问5、头文件 二、 list 双向链表容器 构造函数1、默认无参构造函数2、创建包含 n 个相同元素的 list 双向链表3、使用初始化列表构造 list 双向链表4、使用另外一个 list 容器 构造 list 双向链表…

C++:map和set的介绍及使用

目录 1. 关联式容器 2. 键值对 3. 树形结构的关联式容器 3.1 set 3.1.1 set的介绍 3.1.2 set的使用 3.2 map 3.2.1 map的介绍 3.2.2 map的使用 3.3 multiset 3.3.1 multiset的介绍 3.3.2 multiset的使用 3.4 multimap 3.4.1 multimap的介绍 3.4.2 multimap的使用…

STL之multimap 【多重映射】

这里写目录标题 STL之multimap 【多重映射】头文件创建 std::multimap插入元素遍历 std::multimap删除元素查找元素场景应用综合示例 STL之multimap 【多重映射】 multimap&#xff1a;多重映射&#xff0c;允许存储多个相同键的键-值对&#xff0c;并按键升序排序。 头文件 …

标准模板库--STL

这里写目录标题 STL初始STL诞生STL基本概念STL六大组件STL中的容器、算法、迭代器容器算法迭代器初识vector存放内置数据类型vector存放自定义数据类型vector中嵌套vector 二级目录二级目录二级目录二级目录二级目录二级目录二级目录二级目录 STL初始 STL诞生 STL基本概念 STL…

STL-函数对象(仿函数)

1 函数对象 1.1函数对象概念 概念&#xff1a; 重载函数调用操作符的类&#xff0c;其对象常称为函数对象 函数对象使用重载的()时&#xff0c;行为类似函数调用&#xff0c;也叫仿函数 本质&#xff1a; 函数对象(仿函数)就是一个类&#xff0c;不是一个函数&#xff0c…

C/C++ STL学习[2]顺序容器的常用操作函数

文章目录 前言1. 类型别名2. 构造函数3. 赋值与swap4. 大小5. 添加/删除元素6. 迭代器获取与关系运算符总结 前言 上一篇章写了常用的顺序容器以及不同顺序容器之间的区别。这篇博客主要是写顺序容器的一些基本操作和一些常用函数&#xff0c;以通用的操作为基准。 1. 类型别名…

「C++之STL」关于在模拟实现STL容器中的深浅拷贝问题

文章目录 前言杨辉三角深浅拷贝问题模拟实现的vector对题目杨辉三角引发的程序崩溃原因解决办法 前言 在学习STL容器中,不仅需要学会容器的使用,同时也需要了解容器的大体框架以及各个函数的模拟实现才能更好的去了解这个容器; 杨辉三角 在LeetCode中有一道这样的题目,给定一…

<C++> 红黑树模拟实现map和set

使用一颗红黑树同时封装map和set。 红黑树源码 #pragma once #include <cassert> #include <iostream> #include <utility> using namespace std;// 红黑树结点颜色 enum Colour {RED,BLACK, };template<class K, class V> struct RBTreeNode {//使用…

<C++> 哈希表模拟实现STL_unordered_set/map

哈希表模板参数的控制 首先需要明确的是&#xff0c;unordered_set是K模型的容器&#xff0c;而unordered_map是KV模型的容器。 要想只用一份哈希表代码同时封装出K模型和KV模型的容器&#xff0c;我们必定要对哈希表的模板参数进行控制。 为了与原哈希表的模板参数进行区分…

C++ vector容器的介绍与使用

一、vector简介 std::vector 是 C 标准模板库 (STL) 中的一个动态数组容器。允许存储元素&#xff08;可以使用任何数据类型作为其元素类型&#xff09;集合&#xff0c;并能够动态调整其大小。 特点&#xff1a; 动态大小&#xff1a;与常规数组不同&#xff0c;vector 可以…

[C++随笔录] stack queue模拟实现

stack && queue模拟实现 stack的实现stack测试用例queue的实现queue测试用例deque stack的实现 &#x1f5e8;️stack的容器适配器应该选什么比较好呢? 首先, stack的特点是 头部入, 尾部出 ⇒ 尾插 和 尾删操作比较频繁 我们前面学过的容器有 vector 和 list, vecto…

【C++】手撕vector(vector的模拟实现)

手撕vector目录&#xff1a; 一、基本实现思路方针 二、vector的构造函数剖析&#xff08;构造歧义拷贝构造&#xff09; 2.1构造函数使用的歧义问题 2.2 vector的拷贝构造和赋值重载&#xff08;赋值重载不是构造哦&#xff0c;为了方便写在一起&#xff09; 三、vector的…

【C++STL基础入门】string类的基础使用

文章目录 前言一、STL使用概述二、string类概述1.string类的构造函数string输出示例代码 2.string类属性属性是什么属性API示例代码 3.输出输出全部输出单个字符 总结 前言 本系列文章使用VS2022&#xff0c;C20版本 STL&#xff08;Standard Template Library&#xff09;是…

[STL]面试题小结(一)

修正时间&#xff1a;2021-7-31 修正二次&#xff1a;2021-09-14 文章目录1 什么是STL2 迭代器中i&#xff0c;i&#xff0c;哪一个好&#xff0c;为什么3 左值引用和右值引用4 STL 简单 hashtable 的实现5 简单说一下traits技法&#xff08;待完善&#xff09;6 一级和二级空间…

C++ 具名要求-基本概念-指定该类型对象可以默认构造

指定该类型对象可以默认构造 要求 以下情况下&#xff0c;类型 T 满足可默认构造 (DefaultConstructible) &#xff1a; 给定 任意标识符 u&#xff0c; 下列表达式必须合法且拥有其指定的效果 表达式后条件T u对象 u 被默认初始化。T u{}对象 u 被值初始化或聚合初始化。…

【C++】STL之vector操作

文章目录 简介vector中的成员类型模板参数头文件的包含构造函数vector的访问方式&#xff1a;下标[ ]迭代器范围for 交换swap 简介 vector是stl中的一种数组容器&#xff0c;vector在英文中有矢量的意思&#xff0c;但实际上在数据结构中就是一种类似于数组的结构&#xff1b;…

C++ STL容器适配器(详解)

STL容器适配器 什么是适配器&#xff0c;C STL容器适配器详解 在详解什么是容器适配器之前&#xff0c;初学者首先要理解适配器的含义。 其实&#xff0c;容器适配器中的“适配器”&#xff0c;和生活中常见的电源适配器中“适配器”的含义非常接近。我们知道&#xff0c;无…

将3D MAX设计模型导入NX1988

将3D MAX设计模型导入NX1988 概述导入流程导出喜欢的模型对模型进行修改模型贴图 概述 一般家装设计都不会用NX之类的产品设计软件&#xff0c;也没有通用的文件格式可以互相转换&#xff0c;本文的目的是将从网上下载的一些设计较好的3D MAX模型导入到NX软件中借用&#xff0…

【C++STL基础入门】list基本使用

文章目录 前言一、list简介1.1 list是什么1.2 list的头文件 二、list2.1 定义对象2.2 list构造函数2.3 list的属性函数 总结 前言 STL&#xff08;Standard Template Library&#xff09;是C标准库的一个重要组成部分&#xff0c;提供了一套丰富的数据结构和算法&#xff0c;可…

【C++STL基础入门】list的增、删

文章目录 前言一、list迭代器1.1 list迭代器的定义 二、list增2.1 头添加2.2 尾添加2.3 中间添加 三、list删3.1 尾删除3.2 头删除3.3 删除指定元素3.4 clear()函数3.5 remove()函数3.6 unique()函数 总结 前言 在C中&#xff0c;STL&#xff08;Standard Template Library&am…

将函数模板作为拷贝构造函数

目录 前言 一.认识pair 二.创建一个mypair对象 二.用mypair对象去初始化另一个mypair对象 三.全局的函数模版make_pair 四.map中的insert函数 五.验证 ​​​​​​​前言 当一个类的成员变量有自定义类型时&#xff0c;我们可以考虑将构造函数设为模板&#xff0c;这…

【STL】:list的模拟实现

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关list的模拟实现&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通 数据…

【C++】STL 标准模板库 ③ ( STL 容器简介 | STL 容器区别 | STL 容器分类 | 常用的 STL 容器 )

文章目录 一、STL 容器简介1、STL 容器区别2、STL 容器分类3、常用的 STL 容器 一、STL 容器简介 1、STL 容器区别 STL 容器 用于管理 一组 数据元素 , 不同类型的 STL 容器 的区别 主要是 节点 和 节点之间的关系模型 不同 ; 容器的内存空间是否连续 : 向量 vector 的内存空间…

【C++历练之路】stack||queue||底层原理知多少

W...Y的主页 &#x1f60a; 代码仓库分享&#x1f495; &#x1f354;前言&#xff1a; C标准模板库&#xff08;Standard Template Library&#xff0c;STL&#xff09;是C语言的一个重要组成部分&#xff0c;提供了一组通用的数据结构和算法&#xff0c;以便开发人员能够高…

c++[string实现、反思]

我的码云 我的string码云 分析总结 1.项目结构 所有的类和函数需要在namespace中实现&#xff0c;要和string高度对应 private:char* _str;//字符串size_t _size;//有效长度size_t _capacity;//总空间&#xff0c;包括\0const static size_t npos-1;2.定义变量 <1> 所…

list【2】模拟实现(含迭代器实现超详解哦)

模拟实现list 引言&#xff08;实现概述&#xff09;list迭代器实现默认成员函数operator* 与 operator->operator 与 operator--operator 与 operator!迭代器实现概览 list主要接口实现默认成员函数构造函数析构函数赋值重载 迭代器容量元素访问数据修改inserterasepush_ba…

【1++的数据结构】之哈希(一)

&#x1f44d;作者主页&#xff1a;进击的1 &#x1f929; 专栏链接&#xff1a;【1的数据结构】 文章目录 一&#xff0c;什么是哈希&#xff1f;二&#xff0c;哈希冲突哈希函数哈希冲突解决 unordered_map与unordered_set 一&#xff0c;什么是哈希&#xff1f; 首先我们要…

《Effective STL》读书笔记(三):关联容器

理解相等&#xff08;equality&#xff09;和等价&#xff08;equivalence&#xff09;的区别 相等的概念是基于operator的&#xff0c;但是相等不意味着两个对象完全相等&#xff0c;取决于operator的具体实现。 等价关系是以“在已排序的区间中对象值的相对顺序”为基础的。…

[C++随想录] 优先级队列

优先级队列 基本使用题目训练 基本使用 priority_queue, 优先级队列, 又叫做双端队列, 头文件也是 <queue> 别看它叫做队列, 其实它是一个 堆 补充一下概念: 大根堆 — — 每一棵树的父节点比它的孩子都大小跟堆 — — 每一棵树的父节点比它的孩子都小 &#x1f447;&…

侯捷 C++ STL标准库和泛型编程【C++学习笔记】 超详细 万字笔记总结 笔记合集

关于STL这部分&#xff0c;原课程将其分为了四部分&#xff0c;我做笔记时&#xff0c;会将其整合&#xff0c;使其更具有整体性 文章目录 1 STL概述1.1 头文件名称1.2 STL基础介绍1.3 typename 2 OOP vs. GP3 容器3.1 容器结构分类3.2 序列式容器3.2.1 array测试深度探索 3.2.…

[C国演义] 第十三章

第十三章 三数之和四数之和 三数之和 力扣链接 根据题目要求: 返回的数对应的下标各不相同三个数之和等于0不可包含重复的三元组 – – 即顺序是不做要求的 如: [-1 0 1] 和 [0, 1, -1] 是同一个三元组输出答案顺序不做要求 暴力解法: 排序 3个for循环 去重 — — N^3, …

[C国演义] 第十四章

第十四章 拆分单词乘积为正数的最长子数组长度 拆分单词 力扣链接 常见的子数组问题 ⇒ 要使用动态规划的解法 那么要确定dp数组的含义 ⇒ do[i] — — 以 s[i] 结尾的子数组可不可以用 wordDict中的字符串来表示 那么问题来了, 如何判断字符串[j, i] 在没在wordDict中呢? …

【C++】list基本接口+手撕 list(详解迭代器)

父母就像迭代器&#xff0c;封装了他们的脆弱...... 手撕list目录&#xff1a; 一、list的常用接口及其使用 1.1list 构造函数与增删查改 1.2list 特殊接口 1.3list 排序性能分析 二、list 迭代器实现&#xff08;重点难点&#xff09; 关于迭代器的引入知识&#xff1a…

[C++随想录] 继承

继承 继承的引言基类和子类的赋值转换继承中的作用域派生类中的默认成员函数继承与友元继承与静态成员多继承的结构棱形继承的结构棱形虚拟继承的结构继承与组合 继承的引言 概念 继承(inheritance)机制是面向对象程序设计使代码可以 复用的最重要的手段&#xff0c;它允许程序…

手写stl源码过程中获取的知识

大家好&#xff0c;我叫徐锦桐&#xff0c;个人博客地址为www.xujintong.com。平时记录一下学习计算机过程中获取的知识&#xff0c;还有日常折腾的经验&#xff0c;欢迎大家来访。 这里记录了我写stl过程中遇到的问题和知识点。里面涉及了stl六大件的知识点。 计算迭代器间的距…

【C++深入浅出】STL之string用法详解

目录 一. 前言 二. STL概要 2.1 什么是STL 2.2 STL的六大组件 2.3 STL的缺陷 三. string类概述 3.1 什么是string类 3.2 为什么要使用string类 四. string类的使用 4.1 包含头文件 4.2 构造函数 4.3 赋值运算符重载 4.4 容量操作 4.5 访问/遍历操作 4.6 查找修改…

『 C++ - STL 』位图(BitMap)与布隆过滤器(Bloom Filter)

文章目录 &#x1f9f8; 位图(BitMap)概念&#x1f9f8; 位图的实现&#x1fa85; 总体框架&#x1fa85; 位图的数据插入&#x1f9e9; 左移操作与右移操作的区别 &#x1fa85; 位图的数据删除&#x1fa85; 位图的数据查找&#x1fa85; 位图整体代码(供参考) &#x1f9f8;…

C++:set和map的使用

set和map的使用 1.关联式容器2.key模型和key_value模型3.set3.1一些注意点3.2set的使用3.3习题 4.multiset5.map5.1一些注意点5.2map的使用5.3习题 6.multimap 1.关联式容器 序列式容器&#xff1a;比如我们之前讲的vector、string、list等均为序列式容器&#xff0c;特点是按…

c++11 标准模板(STL)本地化库 - std::isblank(std::locale) 检查字符是否被本地环境分类为空格字符

本地化库 本地环境设施包含字符分类和字符串校对、数值、货币及日期/时间格式化和分析&#xff0c;以及消息取得的国际化支持。本地环境设置控制流 I/O 、正则表达式库和 C 标准库的其他组件的行为。 检查字符是否被本地环境分类为空格字符 std::isblank(std::locale) templat…

【C++】标准模板库 STL 简介

&#x1f9d1;‍&#x1f393;个人主页&#xff1a;简 料 &#x1f3c6;所属专栏&#xff1a;C &#x1f3c6;个人社区&#xff1a;越努力越幸运社区 &#x1f3c6;简 介&#xff1a;简料简料&#xff0c;简单有料~在校大学生一枚&#xff0c;专注C/C/GO的干货分…

UVA1595 Symmetry 对称轴 解题报告

题目链接 https://vjudge.net/problem/UVA-1595 题目大意 给出平面上N&#xff08;N≤1000&#xff09;个点&#xff0c;问是否可以找到一条竖线&#xff0c;使得所有点左右对称。 解题思路 使用map< double, vector< double > > 将所有的点按照y轴分类存放&a…

UVA10935 Throwing cards away I 卡片游戏 解题报告

UVA10935 Throwing cards away I 卡片游戏 解题报告 题目链接 https://vjudge.net/problem/UVA-10935 题目大意 桌上有n&#xff08;n≤50&#xff09;张牌&#xff0c;从第一张牌&#xff08;即位于顶面的牌&#xff09;开始&#xff0c;从上往下依次编号为1&#xff5e;n。…

【STL】set, map, multiset, multimap的介绍及使用

TOC 目录 关联式容器 树形结构与哈希结构 键值对 set set的定义方式 set的使用 multiset map map的介绍 map的定义方式 map的插入 insert函数的参数 insert函数的返回值 map的查找 map的删除 map的[ ]运算符重载 map的迭代器遍历 map的其他成员函数 multim…

C++ STL中的 pair

pair 概述 pair 用于将两个可能是不同数据类型的值结合在一起。pair 提供了一种将两个异构对象存储为单个单元的方法。如果想存储元组&#xff0c;基本上会使用它。pair 容器是一个定义在 <utility> 头文件中的简单容器&#xff0c;由两个数据元素或对象组成。 第一个元…

priority_queue的使用与模拟实现(容器适配器+stack与queue的模拟实现源码)

priority_queue的使用与模拟实现 引言&#xff08;容器适配器&#xff09;priority_queue的介绍与使用priority_queue介绍接口使用默认成员函数 size与emptytoppush与pop priority_queue的模拟实现构造函数size与emptytoppush与pop向上调整建堆与向下调整建堆向上调整建堆向下调…

STL——vector模拟实现

在学习过程种 &#xff0c;学习看源码是很有必要的&#xff0c;它可以让你更清楚的知道一些代码的细节&#xff0c;你也会发现源码将效率利用到了极致&#xff0c;不得不佩服写出源码的人。 下面我将配合源码来实现一个简单的vector&#xff0c;下面请看源码 看源码我们首先要…

C++ STL之deque的理解及使用

文章目录 1. 介绍2. 实现原理&#xff08;简单理解&#xff09;3. deque的优缺点4. deque类的使用4.1 deque类对象的构造函数4.2 deque类对象的容量操作4.3 deque类对象的修改操作4.4 deque类对象的访问及遍历操作 1. 介绍 deque(双端队列)&#xff1a;是一种双开口的连续空间的…

【C++修炼秘籍】List深度剖析

【C修炼秘籍】STL-List ☀️心有所向&#xff0c;日复一日&#xff0c;必有精进 ☀️专栏《C修炼秘籍》 ☀️作者&#xff1a;早凉 ☀️如果有错误&#xff0c;烦请指正&#xff0c;如有疑问可私信联系&#xff1b; 目录 【C修炼秘籍】STL-List 文章目录 前言 一、list介绍…

c++之迭代器与反向迭代器

&#xff09; 正向迭代器迭代器的变量与typedef与模版operator()operator--()operator*()operator->() 反向迭代器模版与typedef与变量operator()operator--()operator*()operator->() 正向迭代器 以链表的迭代器为例 具体的代码以及可以看上一篇链表的文章:链表 迭代器的…

C++ 利用容器适配器,仿函数实现栈,队列,优先级队列(堆),反向迭代器,deque的介绍与底层

C 利用容器适配器,仿函数实现栈,队列,优先级队列【堆】,反向迭代器,deque的介绍与底层 一.容器适配器的介绍二.利用容器适配器实现栈和队列1.stack2.queue 三.仿函数介绍1.什么是仿函数2.仿函数的使用3.函数指针的使用1.函数指针的用处2.利用函数指针完成回调3.利用仿函数完成回…

STL-priority_queue

文档 目录 1.关于priority_queued1的定义 2.priority_queue的使用 1.关于priority_queued1的定义 1. 优先队列是一种容器适配器&#xff0c;根据严格的弱排序标准&#xff0c;它的第一个元素总是它所包含的元素中最大的。 2. 此上下文类似于堆&#xff0c;在堆中可以随时插入元…

C++ pair+map+set+multimap+multiset+AVL树+红黑树(深度剖析)

文章目录 1. 前言2. 关联式容器3. pair——键值对4. 树形结构的关联式容器4.1 set4.1.1 set 的介绍4.1.2 set 的使用 4.2 map4.2.1 map 的介绍4.2.2 map 的使用 4.3 multiset4.3.1 multiset 的介绍4.3.2 multiset 的使用 4.4 multimap4.4.1 multimap 的介绍4.4.2 multimap 的使…

【数据结构】二叉树的链式存储结构

【数据结构】二叉树的链式存储结构 二叉树的存储结构 typedef int BTDataType; // 二叉树的结构 typedef struct BinaryTreeNode {BTDataType data; // 树的值struct BinaryTreeNode *left; // 左孩子struct BinaryTreeNode *right;// 右孩子 } BinaryTreeNode;二…

RBTree(红黑树)模拟实现(插入)

目录 红黑树的性质 红黑树的模拟插入 叔叔存在且为红色 叔叔不存在 旋转情况​​​​​​​ 叔叔存在且为黑色 总结 插入实现 节点 插入逻辑 左单旋 右单旋 红黑树是一颗平衡搜索二叉树&#xff0c;但是红黑树并不像 AVL 树一样是高度平衡二叉树&#xff0c;任意一…

C++ STL之list的使用及模拟实现

文章目录 1. 介绍2. list类的使用2.1 list类对象的构造函数2.2 list类对象的容量操作2.3 list类对象的修改操作2.4 list类对象的访问及遍历操作 3. list类的模拟实现 1. 介绍 list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭…

【C++】:STL源码剖析之vector类容器的底层模拟实现

&#x1f4da;1.vector接口总览 namespace lyp {//模拟实现vectortemplate<class T>class vector{public:typedef T* iterator;typedef const T* const_iterator;//默认成员函数vector(); //构造函数vector(size_t n, const …

C++函数对象-部分函数应用-表明一个对象是标准占位符,或者可以用作标准占位符(std::is_placeholder)

任何定义了函数调用操作符的对象都是函数对象。C 支持创建、操作新的函数对象&#xff0c;同时也提供了许多内置的函数对象。 部分函数应用 std::bind_front 与 std::bind 提供部分函数应用的支持&#xff0c;即绑定参数到函数以创建新函数。 表明一个对象是标准占位符&#x…

【C++STL基础入门】stack栈的基础使用

文章目录 前言一、栈是什么&#xff1f;二、STL中栈的使用2.1 栈的头文件2.2 栈的构造函数 三、stack属性3.1 empty()函数3.2 size()函数 总结 前言 C STL&#xff08;Standard Template Library&#xff09;是C标准库中的一个强大的工具集&#xff0c;提供了各种常用的数据结…

【C++】手撕string(string的模拟实现)

手撕string目录&#xff1a; 一、 Member functions 1.1 constructor 1.2 Copy constructor&#xff08;代码重构&#xff1a;传统写法和现代写法&#xff09; 1.3 operator&#xff08;代码重构&#xff1a;现代写法超级牛逼&#xff09; 1.4 destructor 二、Other mem…

UVA814 邮件传输的代理交互 解题报告

UVA814 邮件传输的代理交互 解题报告 题目链接 https://vjudge.net/problem/UVA-814 题目大意 本题的任务为模拟发送邮件时MTA&#xff08;邮件传输代理&#xff09;之间的交互。所谓MTA&#xff0c;就是email地址格式usermtaname的“后面部分”。当某人从user1mta1发送给另…

UVA1596 Bug Hunt 找Bug 解题报告

题目链接 https://vjudge.net/problem/UVA-1596 题目大意 输入并模拟执行一段程序&#xff0c;输出第一个bug所在的行。每行程序有两种可能&#xff1a; 数组定义&#xff0c;格式为arr[size]。例如a[10]或者b[5]&#xff0c;可用下标分别是0&#xff5e;9和0&#xff5e;4…

C++ STL string类使用及实现详解

1. string简介 C语言中&#xff0c;可以用字符数组来存储字符串&#xff0c;如&#xff1a; char ch[] "hello world"; C中&#xff0c;可以使用string类对象来存储字符串&#xff0c;使用起来比C语言中的字符数组要方便得多&#xff0c;而且不用考虑容量的问题。…

侯捷 C++ STL标准库和泛型编程 —— 4 分配器 + 5 迭代器

4 分配器 4.1 测试 分配器都是与容器共同使用的&#xff0c;一般分配器参数用默认值即可 list<string, allocator<string>> c1;不建议直接用分配器分配空间&#xff0c;因为其需要在释放内存时也要指明大小 int* p; p allocator<int>().allocate(512,…

<C++> STL_bitset使用和模拟实现

bitset的介绍 位图的引入 给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&#xff0c;如何快速判断一个数是否在这40亿个数中&#xff1f; 要判断一个数是否在某一堆数中&#xff0c;我们可能会想到如下方法&#xff1a; 将这一堆数进行排序&#xff0…

侯捷 C++ STL标准库和泛型编程 —— 6 算法 + 7 仿函数

6 算法 算法的标准样式&#xff1a;需要传进去两个指针 6.1 算法源码 6.1.1 accumulate 两个版本&#xff1a; 元素累加到 init 上 template <class InputIterator, class T> T accumulate(InputIterator first, InputIterator last, T init) {for (; first ! last; f…

C++ STL中vector的模拟实现

目录 1.四个默认函数 2.迭代器 3.访问 4.插入删除 4.空间扩容 5.访问数据个数&#xff0c;空间大小 6.交换 1.四个默认函数 //4个默然函数//vecotr<int> vvector():_start(nullptr),_finish(nullptr),_endofstorage(nullptr){}template <class InputIterator &…

【C++】STL 算法 ⑨ ( 预定义函数对象示例 - 将容器元素从大到小排序 | sort 排序算法 | greater<T> 预定义函数对象 )

文章目录 一、预定义函数对象示例 - 将容器元素从大到小排序1、sort 排序算法2、greater<T> 预定义函数对象 二、代码示例 - 预定义函数对象1、代码示例2、执行结果 一、预定义函数对象示例 - 将容器元素从大到小排序 1、sort 排序算法 C 标准模板库 ( STL , Standard Te…

【C++】STL 算法 ③ ( 函数对象中存储状态 | 函数对象作为参数传递时值传递问题 | for_each 算法的 函数对象 参数是值传递 )

文章目录 一、函数对象中存储状态1、函数对象中存储状态简介2、示例分析 二、函数对象作为参数传递时值传递问题1、for_each 算法的 函数对象 参数是值传递2、代码示例 - for_each 函数的 函数对象 参数在外部不保留状态3、代码示例 - for_each 函数的 函数对象 返回值 一、函数…

STL常用算法---C++

常用算法目录&#xff1a; STL常用算法概述1.常用遍历算法1.1 for_each1.2 transform 2. 常用查找算法2.1 find2.2 find_if2.3 adjacent_find2.4 binary_search2.5 count2.6 count_if 3.常用排序算法3.1 sort3.2 random_shuffle3.3 merge3.4 reverse 4 常用拷贝和替换算法4.1 c…

侯捷 C++ STL标准库和泛型编程 —— 8 适配器

8 适配器 适配器 Adapter 只是一个小变化&#xff0c;比如改个接口&#xff0c;函数名称等等其出现在三个地方&#xff1a;仿函数适配器&#xff0c;迭代器适配器&#xff0c;容器适配器可以使用继承 / 复合的两种方式实现&#xff0c;STL中都用复合 其思想就是将该记的东西记…

[C++] C++生成随机数

一、简介 在C语言中常使用srand()random()的方式生成随机数&#xff0c;该方式并不是一个很好的随据说生成方法&#xff0c;一方面是因为其生成的随机数质量较低&#xff0c;另一方面其随机数范围也有所限制。在C11中推荐使用随机数引擎的方式生成随机数。 如何高效得生成高质…

【C++】STL 算法 ⑥ ( 二元谓词 | std::sort 算法简介 | 为 std::sort 算法设置 二元谓词 排序规则 )

文章目录 一、二元谓词1、二元谓词简介2、 std::sort 算法简介3、 代码示例 - 为 std::sort 算法设置 二元谓词 排序规则 一、二元谓词 1、二元谓词简介 " 谓词 ( Predicate ) " 是一个 返回 布尔 bool 类型值 的 函数对象 / 仿函数 或 Lambda 表达式 / 普通函数 , …

俩万字详解C++STL期末复习知识点(C++STL课本源码私信可得)

邸老师复习建议 复习注意事项 1 不考死记硬背的题&#xff0c;比如名词解释。 2 选择题重点考核宏观性、综合性的问题&#xff0c;比如&#xff1a;把电话通讯录存入容器&#xff0c;该选哪一个容器&#xff1f; 3 选择题重点考核理解性的问题&#xff0c;比如&#xff0c;…

stl 输入输出流

标准输入输出流 头文件 iostream 从标准输入读取流 cin >> 从标准输出写入流 cout << get 系列函数 get 无参数&#xff1a;cin.get() 从指定的输入流中提取一个字符&#xff08;包括空白字符&#xff09;&#xff0c;若读取成功&#xff0c;返回该字符的 ASC…

c++面试题汇总(不定期更新...)

文章目录 0 引言1 c基础1.1 c和c的区别1.2 结构体struct和类class的区别1.3 结构体struct和共同体union的区别1.4 c指针pointer和引用reference的区别1.5 c中new和delete是如何实现的1.6 c中#define和const的区别1.7 c中关键字static的作用1.8 堆Heap和栈Stack的区别1.9 定义De…

【C++】STL(标准模板库)

文章目录 1. 基本概念2. 容器2.1. 容器的分类 1. 基本概念 STL&#xff08;Standard Template Library&#xff0c;标准模板库)是惠普实验室开发的一系列软件的统称&#xff0c;现在已经成为C标准库的重要组成部分。STL的从广义上讲分为三类&#xff1a;algorithm&#xff08;…

C++函数对象-函数包装器-(std::function)(一)- 构造新的 std::function 实例 - 析构 std::function 实例

任何定义了函数调用操作符的对象都是函数对象。C 支持创建、操作新的函数对象&#xff0c;同时也提供了许多内置的函数对象。 函数包装器 std::function 提供存储任意类型函数对象的支持。 包装具有指定函数调用签名的任意类型的可调用对象 std::function template< clas…

探索C++中std::string的弱点:你可能未曾注意到的缺点

C中std::string的弱点&#xff1a;你可能未曾注意到的缺点 一、背景二、性能方面的局限三、可变性带来的问题四、内存管理和指针操作五、Unicode和多字节字符集的支持六、其他替代方案七、总结 一、背景 C中std::string是一个非常重要的类&#xff0c;用于表示和处理字符串数据…

【C++】详解priority_queue(优先级队列)与函数对象

目录 一、priority_queue 的介绍和使用 1.1priority_queue 的介绍 2.2priority_queue 的使用 二、仿函数 2.1什么是仿函数 2.2仿函数的作用 三、函数对象的特点&#xff08;知识点多&#xff09; 3.1分析特点5&#xff08;比较普通函数与函数对象&#xff09; 3.1.1利…

std::string_view概念原理及应用

概念 使用const string&作为参数是先使用字符串字面量编译器会创建一个临时字符串对象然后创建std::string。 或者一个函数提供char*和const string&参数的两个版本函数&#xff0c;不是优雅的解决方案。 于是需要一个只使用内存不维护内存的类。 原理 在visual s…

【C++】详解map和set基本接口及使用

文章目录 一、关联式容器与键值对1.1关联式容器&#xff08;之前学的都是序列容器&#xff09;1.2键值对pairmake_pair函数&#xff08;map在插入的时候会很方便&#xff09; 1.3树形结构的关联式容器 二、set2.1set的基本介绍2.1默认构造、迭代器区间构造、拷贝构造&#xff0…

binary_search_tree的介绍与实现(二叉搜索树精美图示详解哦)

二叉搜搜索树 引言二叉搜索树的介绍二叉搜索树的实现框架默认成员函数构造析构赋值重载 InsertR&#xff08;插入&#xff09;EraseR&#xff08;删除&#xff09;SearchR&#xff08;查找&#xff09; 源码概览总结 引言 在C语言部分&#xff0c;我们已经认识了树与二叉树的结…

C++提高笔记(六)---STL函数对象、STL常用算法(遍历、查找)

1、STL-函数对象 1.1函数对象 1.1.1函数对象概念 概念&#xff1a; 重载函数调用操作符的类&#xff0c;其对象常称为函数对象 函数对象使用重载的()时&#xff0c;行为类似函数调用&#xff0c;也叫仿函数 本质&#xff1a;函数对象(仿函数)是一个类&#xff0c;不是一个…

C++ 改造红黑树,封装map和set

C 改造红黑树,封装map和set 一.前言:已经实现好了的红黑树二.简化STL库里面对于map和set的封装1.STL库中红黑树的简化代码2.STL库中set的简化代码3.STL库中map的简化代码4.封装map和set的第一步5.红黑树第一个模板参数的价值6.红黑树节点的定义 三.仿函数1.解除仿函数的误解2.仿…

C++提高笔记(七)---STL常用算法(排序、拷贝和替换、算术生成、集合)

&#xff08;由于上篇笔记篇幅过长&#xff0c;故开新篇 继续记录算法笔记&#xff09; 2.3常用排序算法 学习目标&#xff1a;掌握常用的排序算法 算法简介&#xff1a; sort //对容器内元素进行排序 random_shuffle //洗牌 指定范围内的元素随机调整次序 merg…

STL_list文档使用介绍与底层代码实现简介

文章目录 list介绍list的使用构造函数&#xff08;constructor&#xff09;迭代器list capacitylist modify&#xff08;修改&#xff09;其他接口函数list迭代器失效问题 list实现基础框架(节点类&#xff09;基础框架&#xff08;迭代器类&#xff09;基础框架&#xff08;链…

每日学习笔记:C++ STL算法之查询容器元素

目录 本文的API 元素计数 查找最大、最小元素 查找第一个匹配元素 查找前N个连续匹配值 查找第一个子区间 查找最后一个子区间 查找两个区间都有的元素的第一次出现的位于第一区间的位置 查找两个连续且相等的元素 本文的API count() count_if(....,op) min_element…

蓝桥杯-常用STL(一)

常用STL &#x1f388;1.动态数组&#x1f388;2.vector的基础使用&#x1f52d;2.1引入库&#x1f52d;2.2构造一个动态数组&#x1f52d;2.3插入元素&#x1f52d;2.4获取长度并且访问元素&#x1f52d;2.5修改元素&#x1f52d;2.6删除元素&#x1f52d;2.7清空 &#x1f38…

C++,stl,map/multimap详解

目录 1.map的构造和赋值 2.map的大小和交换 3.map的插入和删除 4.map的查找和统计 5.map的排序 1.map的构造和赋值 #include<bits/stdc.h> using namespace std;void print(map<int,int> &mp) {for(map<int,int>::iterator it mp.begin(); it ! m…

C++,stl,常用排序算法,常用拷贝和替换算法

目录 1.常用排序算法 sort random_shuffle merge reverse 2.常用拷贝和替换算法 copy replace replace_if swap 1.常用排序算法 sort 默认从小到大排序 #include<bits/stdc.h> using namespace std;int main() {vector<int> v;v.push_back(1);v.push_ba…

问题记录——c++ sort 函数 和 严格弱序比较

引出 看下面这段cmp函数的定义 //按照vector第一个元素升序排序 static bool cmp(const vector<int>& a, const vector<int>& b){return a[0] < b[0]; }int eraseOverlapIntervals(vector<vector<int>>& intervals) {//按区间左端排序…

【C++进阶】STL容器--stack和queue深度剖析优先队列适配器原理

目录 前言 1. 容器的使用 1.1 stack 1.2 queue 2. 什么是适配器 3. stack&&queue底层实现 4. deque的简单介绍 4.1 deque的缺陷 5. priority_queue 思考 6. priority_queue的实现 前言 栈和队列在C语言中大家都有所了解&#xff0c;C语言的栈和队列都是我们手动去…

【C++】vector的使用和模拟实现(超级详解!!!!)

文章目录 前言1.vector的介绍及使用1.1 vector的介绍1.2 vector的使用1.2.1 vector的定义1.2.2 vector iterator 的使用1.2.3 vector 空间增长问题1.2.3 vector 增删查改1.2.4 vector 迭代器失效问题。&#xff08;重点!!!!!!&#xff09;1.2.5 vector 在OJ中有关的练习题 2.ve…

STL函数对象---C++

STL函数对象目录&#xff1a; 1.函数对象1.1 函数对象概念1.2 函数对象使用 2.谓词2.1 谓词概念2.2 一元谓词2.3 二元谓词 3.内建函数对象3.1 内建函数对象意义3.2 算术仿函数3.3 关系仿函数3.4 逻辑仿函数 1.函数对象 1.1 函数对象概念 概念&#xff1a; 重载函数调用操作符…

C++ STL自定义排序

更具体的看【速记】C STL自定义排序 - 知乎 (zhihu.com) sort sort第三个位置放的greater<int>和less<int>萌新可能会弄错&#xff0c;这两个单词不是更大和更小的意思&#xff0c;而是大于和小于&#xff0c;并且比较就是自定义排序中的前者和后者。 如果是less…

c++11 标准模板(STL)(std::tuple)(十)

定义于头文件 <tuple> template< class... Types > class tuple; (C11 起) 类模板 std::tuple 是固定大小的异类值汇集。它是 std::pair 的推广。 若 (std::is_trivially_destructible_v<Types> && ...) 为 true &#xff0c;则 tuple 的析构函数是…

C++ std::list的merge()使用与分析

看到《C标准库第2版》对list::merge()的相关介绍&#xff0c;令我有点迷糊&#xff0c;特意敲代码验了一下不同情况的调用结果。 《C标准库第2版》对list::merge()的相关介绍 list::merge()定义 merge()的作用就是将两个list合并在一起&#xff0c;函数有2个版本&#xff1a;…

探索C++中的动态数组:实现自己的Vector容器

&#x1f389;个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名乐于分享在学习道路上收获的大二在校生 &#x1f648;个人主页&#x1f389;&#xff1a;GOTXX &#x1f43c;个人WeChat&#xff1a;ILXOXVJE &#x1f43c;本文由GOTXX原创&#xff0c;首发CSDN&…

【STL】string各种函数的应用

目录 1.string 基本赋值操作 2.string存取字符操作 (at()) 3.string拼接操作 4.string查找和替换 5.string子串 6.string的插入与删除 1.string 基本赋值操作 string assign&#xff08;string str&#xff0c;int n&#xff09;string assign&#xff08;string str,…

C++ STL->list模拟实现

theme: smartblue list list文档 list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。list的底层是双向链表结构&#xff0c;双向链表中每个元素存储在互不相关的独立节点中&#xff0c;在节点中通过指针指向 其前一个元素…

list链表

1. list基本概念 功能&#xff1a;将数据进行链式存储 链表&#xff08;list&#xff09;是一种物理存储单元上非连续的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接实现的 链表的组成&#xff1a;链表由一系列结点组成 结点的组成&#xff1a;一个是存储数据…

c++11 标准模板(STL)本地化库 - std::toupper(std::locale) 用本地环境的 ctype 刻面将字符转换为大写

本地化库 本地环境设施包含字符分类和字符串校对、数值、货币及日期/时间格式化和分析&#xff0c;以及消息取得的国际化支持。本地环境设置控制流 I/O 、正则表达式库和 C 标准库的其他组件的行为。 用本地环境的 ctype 刻面将字符转换为大写 std::toupper(std::locale) temp…

PTA L2-039 清点代码库

上图转自新浪微博&#xff1a;“阿里代码库有几亿行代码&#xff0c;但其中有很多功能重复的代码&#xff0c;比如单单快排就被重写了几百遍。请设计一个程序&#xff0c;能够将代码库中所有功能重复的代码找出。各位大佬有啥想法&#xff0c;我当时就懵了&#xff0c;然后就挂…

【C++进阶】STL容器--list底层剖析(迭代器封装)

目录 前言 list的结构与框架 list迭代器 list的插入和删除 insert erase list析构函数和拷贝构造 析构函数 拷贝构造 赋值重载 迭代器拷贝构造、析构函数实现问题 const迭代器 思考 总结 前言 前边我们了解了list的一些使用及其注意事项&#xff0c;今天我们进一步深入…

[算法沉淀记录] 排序算法 —— 堆排序

排序算法 —— 堆排序 算法基础介绍 堆排序&#xff08;Heap Sort&#xff09;是一种基于比较的排序算法&#xff0c;它利用堆这种数据结构来实现排序。堆是一种特殊的完全二叉树&#xff0c;其中每个节点的值都必须大于或等于&#xff08;最大堆&#xff09;或小于或等于&am…

The Morning Star

题目描述 本题有多组数据。 给定 n 个点&#xff0c;第 i 个点的坐标为 xi​&#xff0c;yi​。 现需要将星星和指南针放在任意两个点上&#xff0c;使得星星在指南针的正北、正东、正西、正南、正东南、正东北、正西南或正西北方向&#xff0c;求一共几种放法。&#xff08…

C++set和map详细介绍

文章目录 前言一、关联式容器和序列式容器二、set1.set文档介绍2.set成员函数1.构造函数2.迭代器3.容量4.修改5.其他 三.multiset四.map1.map文档介绍2.map成员函数1.构造2.insert插入3.count4.迭代器5.【】和at 五.multimap总结 前言 在本篇文章中&#xff0c;我们将会学到关…

[C++]18:set和map的使用

set和map的使用 一.关联式容器&#xff1a;1.简单概念&#xff1a;2.<key , value>--->键值对3.set和map的底层结构&#xff08;平衡搜索树或者红黑树&#xff09; 二.set1.set (排序不重复)1.模板参数&#xff1a;2.set是一个有序存储的容器&#xff1a;3.set中每个数…

STL常用容器(vector容器)---C++

STL常用容器目录 2.vector容器2.1 vector基本概念2.2 vector构造函数2.3 vector赋值操作2.4 vector容量和大小2.5 vector插入和删除2.6 vector数据存取2.7 vector互换容器2.7.1 vector互换容器收缩内存空间 2.8 vector预留空间 2.vector容器 2.1 vector基本概念 功能&#xf…

【C++】树形关联式容器set、multiset、map和multimap的介绍与使用

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 1.关联式容器 2.键…

C++ STL -->模拟实现string

文章目录 string模拟实现模拟实现string类函数接口默认成员函数构造函数析构函数拷贝构造函数赋值运算符重载函数 迭代器相关函数(iterator)begin()end() capacity(容量和大小函数)size函数capacity函数reserve函数resize函数 modfiy(修改字符串函数)push_back(尾插)append(尾插…

STL常见容器(map/multimap容器)---C++

STL常见容器目录&#xff1a; 8.map/ multimap容器8.1 map基本概念8.2 map构造和赋值8.3 map大小和交换8.4 map插入和删除8.5 map查找和统计8.6 map容器排序8.6.1 内置类型排序8.6.2 自定义类型排序8.6.3 自定义和内置类型混合排序 8.7 实例8.7.1 案例描述8.7.2 实现步骤 8.map…

【C++基础】STL容器面试题分享||上篇

&#x1f308;欢迎来到C基础专栏 &#x1f64b;&#x1f3fe;‍♀️作者介绍&#xff1a;前PLA队员 目前是一名普通本科大三的软件工程专业学生 &#x1f30f;IP坐标&#xff1a;湖北武汉 &#x1f349; 目前技术栈&#xff1a;C/C STL 1.请说说 STL 的基本组成部分2.详细的说&…

【C++】——list的介绍及使用 模拟实现

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 文章目录 前言 一、list的介绍及使用 1.1 list的介绍 1.2 list的使用 1.2.1 list的构造 1.2.2 list iterator的使用 1.2.3 list capacity 1.2.4 list element access 1.…

【C++】有关反向迭代器的++和--的区别和细节

文章目录 标题&#xff1a;深入理解C反向迭代器的和--操作前言内容结语 标题&#xff1a;深入理解C反向迭代器的和–操作 前言 C中的STL&#xff08;标准模板库&#xff09;提供了丰富的容器和算法&#xff0c;而其中的反向迭代器为我们提供了一种逆序遍历容器元素的便捷方式…

【C++练级之路】【Lv.17】【STL】set类和map类的模拟实现

快乐的流畅&#xff1a;个人主页 个人专栏&#xff1a;《C语言》《数据结构世界》《进击的C》 远方有一堆篝火&#xff0c;在为久候之人燃烧&#xff01; 文章目录 引言一、红黑树&#xff08;改造版&#xff09;1.1 结点1.2 迭代器1.2.1 operator1.2.2 operator- - 1.3 本体1.…

每日学习笔记:C++ STL算法之比较容器

本文的API 是否相等(值与排序) equal()equal(....,op) 是否相等(值)【忽略排序】 is_permutation()is_permutation(....,op) 查找两个容器内容中第一处不同的元素位置 mismatch()mismatch(....,op) 是否小于 lexicographical_compare()lexicographical_compare(....,op) 是否升…

c++11 标准模板(STL)本地化库 - 平面类别 - (std::ctype) 定义字符分类表(六)

本地化库 本地环境设施包含字符分类和字符串校对、数值、货币及日期/时间格式化和分析&#xff0c;以及消息取得的国际化支持。本地环境设置控制流 I/O 、正则表达式库和 C 标准库的其他组件的行为。 平面类别 定义字符分类表 std::ctype template< class CharT > clas…

【黑马程序员】STL实战--演讲比赛管理系统

演讲比赛管理系统 需求说明 比赛规则 程序功能 创建管理类 功能描述 提供菜单界面与用户交互 对演讲比赛流程进行控制 与文件的读写交互 创建演讲比赛管理类 新建speechManager.hpp #pragma once#include <iostream>using namespace std;// 设计演讲比赛类 clas…

STL:List从0到1

&#x1f389;个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名乐于分享在学习道路上收获的大二在校生 &#x1f648;个人主页&#x1f389;&#xff1a;GOTXX &#x1f43c;个人WeChat&#xff1a;ILXOXVJE &#x1f43c;本文由GOTXX原创&#xff0c;首发CSDN&…

C++提高笔记(五)---STL容器(set/multiset、map/multimap)

1、set / multiset容器 1.1set基本概念 简介&#xff1a;所有元素都会在插入时自动被排序 本质&#xff1a;set和multiset属于关联式容器&#xff0c;底层结构是用二叉树实现 set和multiset区别&#xff1a; set不允许容器中有重复的元素 multiset允许容器中有重复的元素 …

c++11 标准模板(STL)(std::tuple)(七)

定义于头文件 <tuple> template< class... Types > class tuple; (C11 起) 类模板 std::tuple 是固定大小的异类值汇集。它是 std::pair 的推广。 若 (std::is_trivially_destructible_v<Types> && ...) 为 true &#xff0c;则 tuple 的析构函数是…

c++11 标准模板(STL)本地化库 - std::islower(std::locale) 检查字符是否被本地环境分类为小写

本地化库 本地环境设施包含字符分类和字符串校对、数值、货币及日期/时间格式化和分析&#xff0c;以及消息取得的国际化支持。本地环境设置控制流 I/O 、正则表达式库和 C 标准库的其他组件的行为。 检查字符是否被本地环境分类为小写 std::islower(std::locale) template&…

c++ 常用的STL

前言 写这篇博客目的是为了记录在刷算法题中使用过的STL&#xff0c;因为有些不太常用的会遗忘。这篇博客只是作为笔记&#xff0c;不是详细的STL&#xff0c;因此只会对常用方法说明&#xff0c;不会详细介绍。此外在后面用到新的STL内容时会再补充。 列队 基础列队 基本列…

每日学习笔记:C++ STL 的无序容器(unordered_set、unordered_map)

定义 特性 能够快速查找元素 操作函数 负载系数 元素个数 / bucket个数 提供哈希函数 提供等价准则 方法一&#xff1a;重写元素的操作符 方法二&#xff1a;自定义函数对象 提供自定义哈希函数和等价准则例子 例一&#xff1a;传入函数对象 例二&#xff1a;传入lambda 检…

【STL基础】vector、stack、queue、list、pair、map、unordered_map、set、unordered_set(详细讲解)

vector、list、pair、unordered_map、unordered_set、stack、queue 参考文章&#xff1a; &#xff08;1&#xff09;【apollo】泛型编程 与 STL &#xff08;2&#xff09;c stack用法 入门必看 超详细 &#xff08;3&#xff09;C中queue的用法&#xff08;超详细&#xff0c…

List--splice使用技巧

splice : 拼接两个list api: void dump(list<int>& li) {for(auto & i :li)cout<<i<< " ";cout<<endl; } int main() { list<int> li1 {1,3,5};list<int> li2 {2,4,6}; }1 c.splice(pos,c2); // li的开头插入li2链表…

【STL】stack栈容器与list链表容器

1.栈stack 栈具有先进后出的特性&#xff0c;最先进入的数据压在最底下&#xff0c;最后出来 2.list链表容器 list链表容器是一种双向链表&#xff0c;两端都可插入与删除&#xff0c;是双向访问迭代器&#xff0c;与vertor随机访问迭代器有不同的区别 reverse&#xff08;&…

每日学习笔记:C++ STL 的forward_list

定义 特点 操作函数 元素查找、移除或安插 forward_list::emplace_after arg...指的是元素构造函数的参数&#xff08;0~N个&#xff09; #include <iostream> #include <memory> #include <list> #include <forward_list> using namespace std;class…

【STL】set容器、pair队组与map容器

目录 1.修改set容器排序规则 2. set容器的各种函数 3.set构造函数multiset 4.创建pair队组 5.map容器 1.修改set容器排序规则 set容器会自动以升序的方式进行排序&#xff0c;想要改变可以制定排序规则&#xff0c;set<int,排序规则> s&#xff1b; 但需要注意&am…

C++提高笔记(四)---STL容器(stack、queue、list)

1、stack容器&#xff08;栈&#xff09; 1.1 栈stack基本概念 概念&#xff1a;stack是一种先进后出&#xff08;First In Last Out&#xff0c;FILO&#xff09;的数据结构&#xff0c;它只有一个出口 栈中只有顶端的元素才可以被外界调用&#xff0c;因此栈不允许有遍历行…

红黑树介绍与模拟实现(insert+颜色调整精美图示超详解哦)

红黑树 引言红黑树的介绍实现结点类insert搜索插入位置插入调整当parent为gparent的左子结点当parent为gparent的右子结点 参考源码测试红黑树是否合格总结 引言 在上一篇文章中我们认识了高度平衡的平衡二叉树AVL树&#xff1a;戳我看AVL树详解哦 &#xff08;关于旋转调整的…

C++ 简单模拟实现 STL 中的 set、map 与 multiset、multimap

目录 一&#xff0c;RB_tree 的实现 1&#xff0c;RB_tree 的节点与数据结构 2&#xff0c;RB_tree 的迭代器 3&#xff0c;RB_tree 的构造 4&#xff0c;RB_tree 的元素操作 5&#xff0c;完整代码 二&#xff0c;set 与 multiset 的实现 1&#xff0c;set 2&#x…

UVA12096 The Set Stack Computer 解题报告

UVA12096 The Set Stack Computer 解题报告 题目链接 https://vjudge.net/problem/UVA-12096 题目大意 有一个专门为了集合运算而设计的“集合栈”计算机。该机器有一个初始为空的栈&#xff0c;并且支持以下操作。 PUSH&#xff1a;空集“{}”入栈。 DUP&#xff1a;把当前…

STL ③ —— set 和 map

1. 序列式容器与关联式容器的区别 序列式容器&#xff1a;其底层为线性序列的数据结构&#xff0c;里面储存的是元素本身。 Eg&#xff1a;vector&#xff0c;list&#xff0c;string&#xff0c;deque&#xff0c;stack&#xff0c;forward_list(C11)。 关联式容器&#xff1…

STL标准模板库(C++

在C里面有已经写好的标准模板库〈Standard Template Library)&#xff0c;就是我们常说的STL库&#xff0c;实现了集合、映射表、栈、队列等数据结构和排序、查找等算法。我们可以很方便地调用标准库来减少我们的代码量。 size/empty 所有的STL容器都支持这两个方法&#xff0c…

每日学习笔记:C++ STL 容器的杂谈

三种自定义STL容器 string作为STL容器 C风格数组作为STL容器 C11以后 C11以前 容器元素类型是引用 使用智能指针存储元素 使用引用外覆器 各容器使用时机 如何分别用两种不同的排序准则来存储同批数据&#xff1f; 解决方案&#xff1a;将容器元素改为智能指针即可。 根据排…

c++11 标准模板(STL)本地化库 - std::isdigit(std::locale) 检查字符是否被本地环境分类为数字

本地化库 本地环境设施包含字符分类和字符串校对、数值、货币及日期/时间格式化和分析&#xff0c;以及消息取得的国际化支持。本地环境设置控制流 I/O 、正则表达式库和 C 标准库的其他组件的行为。 检查字符是否被本地环境分类为数字 std::isdigit(std::locale) template<…

c++11 标准模板(STL)本地化库 - std::isgraph(std::locale) 检查字符是否被本地环境分类为图形字符

本地化库 本地环境设施包含字符分类和字符串校对、数值、货币及日期/时间格式化和分析&#xff0c;以及消息取得的国际化支持。本地环境设置控制流 I/O 、正则表达式库和 C 标准库的其他组件的行为。 检查字符是否被本地环境分类为图形字符 std::isgraph(std::locale) templat…

C++ 简单模拟实现 STL 中的 list 与 queue

目录 一&#xff0c;list 1&#xff0c; list 的节点与迭代器 2&#xff0c;list 的数据结构、一些简单的功能、构造函数 3&#xff0c;list 的对元素操作 4&#xff0c;C 11 的一些功能 5&#xff0c;完整代码&#xff1a; 二&#xff0c;queue 一&#xff0c;list std…

每日学习笔记:C++ STL迭代器适配器

Reverse&#xff08;反向&#xff09;迭代器 定义 正常迭代器与反向迭代器的转换 正常迭代器 to 反向迭代器 反向迭代器 to 正常迭代器 Insert&#xff08;安插型&#xff09;迭代器 定义 尾部安插型 头部安插型 通用安插型(指定安插位置) Stream&#xff08;串流&#…

【C++杂货铺】详解list容器

目录 &#x1f308;前言&#x1f308; &#x1f4c1; 介绍 &#x1f4c1; 使用 &#x1f4c2; 构造 &#x1f4c2; 迭代器iterator &#x1f4c2; capacity &#x1f4c2; modifiers &#x1f4c2; 迭代器失效 &#x1f4c1; 模拟实现 &#x1f4c2; 迭代器的实现 &#x…

【C++初阶】String在OJ中的使用(一):仅仅反转字母、字符串中的第一个唯一字母、字符串最后一个单词的长度、验证回文串、字符串相加

前言&#xff1a; &#x1f3af;个人博客&#xff1a;Dream_Chaser &#x1f388;博客专栏&#xff1a;C &#x1f4da;本篇内容&#xff1a;仅仅反转字母、字符串中的第一个唯一字母、字符串最后一个单词的长度、验证回文串、字符串相加 目录 917.仅仅反转字母 题目描述&am…

PTA家庭房产

作者 陈越 单位 浙江大学 给定每个人的家庭成员和其自己名下的房产&#xff0c;请你统计出每个家庭的人口数、人均房产面积及房产套数。 输入格式&#xff1a; 输入第一行给出一个正整数N&#xff08;≤1000&#xff09;&#xff0c;随后N行&#xff0c;每行按下列格式给出…