stl
  • 2024-09-30STL之list篇(下)(从底层分析实现list容器,逐步剥开list的外表)
    文章目录前言一、list的数据结构和类实现需求1.1数据结构1.2list类实现需求二、list迭代器的实现2.1为什么list不能直接把迭代器当作指针一样使用?2.2list迭代器的框架设计2.3`*`和`->`操作符的重载2.4`++`和`--`操作符的重载2.5`!=`和`==`操作符的重载三、l
  • 2024-09-30【C++ STL】深入理解string类的底层实现
    string类的模拟实现一.string的构造与析构函数1.普通构造函数与析构函数2.拷贝构造的浅拷贝所带来的问题3.如何实现深拷贝二.运算符重载1.赋值运算符重载2.大小比较相关的运算符重载三.迭代器的实现四.string常用操作的实现1.静态const成员npos的定义2.插入操作3.查找
  • 2024-09-28学习C++ 必看的书,你看过几本了?
    我会陆续把这些书的电子版放到我的资源中,需要的朋友可以下载,都是免积分的。C++PrimerC++沉思录EffectiveSTLeffectivec++STL源码剖析EssentialC++ExceptionalC++InsidetheC++ObjectModelModernC++DesignMoreEffectiveC++MoreExceptionalC++TheC+
  • 2024-09-28STL之string
    STL之string1.为什么学习string类?1.1C语言中的字符串1.2两个面试题(暂不做讲解)2.标准库中的string类2.1string类(了解)2.2auto和范围for(重点)2.3string类的常用接口说明(注意下面我只讲解最常用的接口)1.为什么学习string类?1.1C语言中的字符串C语言中,字符
  • 2024-09-27STL之vector篇(下)(手撕底层代码,从零实现vector的常用指令,深度剖析并优化其核心代码)
    文章目录1.基本结构与初始化1.1空构造函数的实现与测试1.2带大小和默认值的构造函数1.3使用迭代器范围初始化的构造函数(建议先看完后面的reserve和push_back)1.4拷贝构造函数1.5赋值操作符的实现(深拷贝)1.6析构函数1.7`begin`与`end`迭代器2.容量管理2.1`re
  • 2024-09-27【C++篇】从零实现 C++ Vector:深度剖析 STL 的核心机制与优化
    文章目录从零实现C++Vector前言1.基本结构与初始化细分1.1空构造函数的实现与测试实现代码:测试用例:输出:1.2带大小和默认值的构造函数实现代码:测试用例:输出:1.3拷贝构造函数实现代码:测试用例:输出:1.4赋值操作符的实现实现代码:测试用例:输出:2.容量管理的实现与测
  • 2024-09-27C++ 标准模板库(STL)之集合(set)
    啊,哈喽,小伙伴们大家好。我是#张亿,今天呐,学的n钱买n鸡是集合(set)C++标准模板库(STL)之集合(set)(下面代码中的std::要去掉)在C++标准模板库(STL)中,set 是一种非常有用的容器,用于存储唯一元素的集合。set 内部自动对元素进行排序,通常使用红黑树(Red-BlackTree)实现,以保证元素以升
  • 2024-09-25c++模板,STL
                                            C++提高编程模板函数模板语法:template用法://自动类型推导mySwap(a,b);//显示指定类型mySwap<int>(a,b);注意事项自动类型推导,必须推导出 一致 的数据类型T,才可
  • 2024-09-25【C++篇】解密 STL 动态之魂:全面掌握 C++ vector 的高效与优雅
    文章目录C++`vector`容器详解:从入门到精通前言第一章:C++`vector`容器简介1.1C++STL容器概述1.2为什么使用`vector`1.3`vector`的优缺点第二章:`vector`的构造方法2.1常见构造函数2.1.1示例:不同构造方法2.1.2相关文档第三章:`vector`容量与大小操作3.1
  • 2024-09-25STL之手撕vector
    前言面试的时候遇到了,是从来没想过会出问题的手撕。竟然在面试环节下出了不少纰漏。要点构造函数:默认构造、拷贝构造、赋值运算符重载、移动构造函数、析构函数push_back/pop_back代码#include<iostream>usingnamespacestd;#defineDEFAULT_CAP(200)class
  • 2024-09-24【C++】STL详解之string类
    本次内容大纲:什么是STLSTL(standardtemplatelibaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。STL的版本原始版本AlexanderStepanov、MengLee在惠普实验室完成的原始版本,本着开源精神,他们声明允许任
  • 2024-09-24C++:STL:String类常用函数介绍(附加部分重要函数的模拟实现)
    C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。如果我们经常在leetcode上刷OJ题,我们会发现字符串类型的题目基本都是
  • 2024-09-23DS堆栈--逆序输出(不使用STL栈)
    题目描述请编写堆栈操作的具体实现代码,实现字符串的逆序输出,需自行实现堆栈。输入一个字符串,按字符按输入顺序压入堆栈,然后根据堆栈后进先出的特点,做逆序输出输入第一行输入t,表示有t个测试实例第二起,每一行输入一个字符串,注意字符串不要包含空格字符串的输入可参考如下
  • 2024-09-20【C++】C++ STL探索:Priority Queue与仿函数的深入解析
    C++语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C++相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类C/C++内存管理模板初阶String使用String模拟实现Vector使用及其模拟实现List使用及其模拟实现容器适配器Stack与Queue这篇文
  • 2024-09-17支持外部内存功能的STL容器使用方法分享
    一、分享简介    C++的STL支持了多种容器供开发者操作,然而这些容器使用的是系统内存,使用者无法直接管理。边缘端的嵌入式设备通常会要求对使用的内存进行管理,因此封装出支持外部内存功能的STL容器就显得十分必要。本案例针对被封装容器的使用方法进行了经验分享,具体涉及3
  • 2024-09-15STL-vector容器总结
    vector(向量)是C++标准模板库(STL)中最常用的容器之一,它提供了动态数组的功能,可以存储任意类型的元素。vector具有自动管理内存、支持随机访问、动态调整大小等优点,非常适合用于需要频繁增删元素或未知大小的数组场景。下面是对vector的总结和常见用法。先复习一下c++中常用的
  • 2024-09-14学习资料
    二分答案递归与分治深搜差分和前缀和贪心背包STL双指针图和树的基础和遍历最短路算法最小生成树线段树和树状数组ST表组合数学树形DP线性代数树剖树剖
  • 2024-09-14天梯赛(常用STL函数)+ 常见算法
    0.(森森美图)判断一个点x3,y3在一条直线(由x1,y1和x2,y2组成)的哪一边若(y2-y3)/(x2-x3)-(y1-y3)/(x1-x3)>0逆时针方向否则顺时针方向1.vectorvector<node>ve;//定义ve.insert(ve.begin()+i,k);//中间插入ve.insert(ve.begin()+i,num,key);ve.erase(ve.begin()+i);//删
  • 2024-09-14C++STL~~stack&queue
    文章目录stack&queue的概念stack&queue的使用stack&queue的练习总结stack&queue的概念stack(栈)概念和特点栈是一种后进先出(LastInFirstOut,LIFO)的数据结构。就像一叠盘子,最后放上去的盘子最先被拿走。queue(队列)概念和特点队列是一种先进先出(FirstInFirstO
  • 2024-09-10C++中STL容器的使用
    容器一些基本操作语法vector初始化操作vector<int>a;//声明向量vector<int>a(10);//声明一个初始大小为10的向量vector<int>a(10,1);//初始大小为10,且值都为1的向量vector<int>b(a);//声明并用向量a初始化向量bvector<int>b(a.begin(),a.begin()+3);//将
  • 2024-09-09STL-List常用接口
    List常用接口insertlist<int>::iteratorpos=find(lt.begin(),lt.end(),3);if(pos!=lt.end()) lt.insert(pos,30);for(autoe:lt) cout<<e<<"";cout<<endl;list的不会失效,而vector会失效。erase后均会失效。解决迭代器失效问题list<i
  • 2024-09-09【C++】C++ STL 探索:List使用与背后底层逻辑
    C++语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C++相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类C/C++内存管理模板初阶String使用String模拟实现Vector使用及其模拟实现本文将通过模拟实现List,从多个角度深入剖析其底层机
  • 2024-09-09C++学习笔记(曾经我看不懂的代码2:基于范围的for循环、auto使用、stl容器、template模板、lambda表达式、结构体继承、仿函数)
    不知不觉c++程序设计:标准库已经看了一大半了,学到了很多,很多曾经在网上和在书上看到却看不懂的代码,在看完标准库中的大半内容以后,都能大致的理清代码的含义。代码模板一:for(auto&a:arr)1、基于范围的for循环:a为迭代变量,arr为迭代范围,&表示引用。写一个例子:#include<ios
  • 2024-09-08STL神秘技巧
    STL神秘技巧技巧一:copy,reverse_copy作用:复制一段区间内的数,给另一段区间使用方法:n=5;srand(time(0));for(Yci=1;i<=n;i++) a[i]=rand();copy(a+1,a+n+1,b+1);reverse_copy(b+1,b+n+1,c+1);pr("a:");for(Yci=1;i<=n;i++) write(a[i]),pc('');ps("");
  • 2024-09-08STL 总结
    STL使用总结快排sort(a+1,a+n+1,less())从小到大可以省略第三个sort(a+1,a+n+1,greater())从大到小堆(queue)1分为大根堆priority_queue<int,vector<int>,less<int>>q;(第三个可以省略)以及小根堆priority_queue<int,vector<int>,greater<int>>q;(第三个不可省略)2可以