技术栈
stl
青小莫
5 小时前
c++
·
stl
C++之vector讲解
本篇讲解stl库中的vector的模拟实现我们有了之前学习过string的经验,学习vector自然是手到擒来,但是vector的内部构造和string不太一样,我们可以通过源码了解一下,如: 我们可以看到,在vector中,有三个成员变量,分别为start、finish、end_of_storage,且她们的类型均为iterator,这与string的char数组、size和capacity是不一样的,vector当然也可以使用string的构造来实现,但是源码采用了这种方式,自然也有自己的道理,那么这
萑澈
2 天前
数据结构
·
c++
·
算法
·
stl
算法竞赛入门:C++ STL核心用法与时空复杂度速查手册
算法入门:STL用法与时空复杂度 - 萑澈的寒舍1. 时空复杂度 (Time & Space Complexity) 在算法竞赛中,时空复杂度是衡量算法性能的重要指标,通常我们更侧重时间复杂度。 1.1. 概述 时间复杂度 (Time Complexity)https://hs.cnies.org/archives/algorithm-STL-time-complexity-2025
炘爚
5 天前
stl
·
gdb
·
shared_ptr
C++11实现线程池:项目实现过程的报错与gdb调试
线程池对象被销毁时,池子里的 std::thread 线程对象还处于 joinable() 状态(既没 join() 也没 detach()),C++ 标准强制调用 std::terminate() 终止程序。
米啦啦.
7 天前
开发语言
·
c++
·
stl
STL(标准模板库)
1.容器:各种数据结构,顺序表、链表、队列、红黑树、哈希表等2.迭代器(Iterator):用于访问容器中成员的方式,本质是元素的位置(本质是指针)
Tairitsu_H
8 天前
开发语言
·
c++
·
stl
·
优先队列
C++:优先队列的模拟实现
优先队列类似堆这种数据结构,在堆中可以随时插入和删除元素,并且可以访问堆顶元素。堆的C语言实现方式和基础知识可以阅读此篇博客,这里不再过多赘述:
影sir
10 天前
c++
·
链表
·
stl
·
list
STL容器——list类
→list官方文档←在数组中,数据在逻辑空间和物理空间上都是连续的。而链表中的数据在逻辑上时连续的在物理空间上不是连续的。所以可以更好的利用空间,但是不能随机访问。
影sir
10 天前
c++
·
算法
·
stl
STL容器——vector类
→vector的官方文档←vector 是动态数组,属于线性表中的顺序存储结构,底层本质是连续内存的数组。
TANGLONG222
15 天前
c语言
·
开发语言
·
数据结构
·
c++
·
笔记
·
算法
·
stl
【C++】STL基础必备:深入解析vector容器的实现(含源码)
vector的底层本质上是顺序表,但是跟我们之前的实现略微有些不同,最大的不同就是结构的不同,我们翻看stl源码中的stl_vector,我们来看看它的结构是如何定义的,如果没有stl源码可以私信我,如下图:
代码中介商
19 天前
开发语言
·
c++
·
stl
C++ STL 标准模板库完全指南:从容器到迭代器
在C++编程中,标准模板库是不可或缺的核心组成部分。无论你是参加算法竞赛、开发大型项目,还是准备技术面试,STL都能极大地提升你的开发效率。
wljy1
23 天前
c语言
·
c++
·
算法
·
蓝桥杯
·
stl
·
牛客
每日一题(2026.4.29) 猫猫与数学
由题意,假设有一数字 ggg,令 A=a+c,B=b+cA = a + c,B = b + cA=a+c,B=b+c,我们希望得到 g∣Ag | Ag∣A 和 g∣Bg | Bg∣B ,即 ggg 整除 AAA 和 ggg 整除 BBB,因此有: A=k1×g,B=k2×g↓∣A−B∣=(k1−k2)×g↓∣a−b∣=(k1−k2)×g A = k_1×g,B = k_2×g \\ ↓ \\ |A - B| = (k_1 - k_2)×g \\ ↓ \\ |a - b| = (k_1 - k_2)×g A
Reese_Cool
23 天前
开发语言
·
c++
·
蓝桥杯
·
stl
【STL】蓝桥杯/天梯赛终极杀器!10个C++字符串核心技巧,暴力破解高频考点
1.声明与初始化2.输入输出2.常用成员函数详细操作参考string操作注意:3.易错点【代码实例】当需要对字符串数组进行排序时,可利用标准库的 std::sort 函数,结合自定义比较函数实现特定排序规则。比如按字符串长度排序、按字典序逆序排序等。【参考洛谷排序算法题】
青小莫
1 个月前
开发语言
·
c++
·
stl
C++之string(OJ练习)
题目链接:https://www.nowcoder.com/practice/8c949ea5f36f422594b306a2300315da?tpId=37&&tqId=21224&rp=5&ru=/activity/oj&qru=/ta/huawei/question-ranking 此题比较简单,我们只需要找到最后一个空格,就可以确定最后一个单词的起始位置,如果没有空格,最后一个单词的长度即为字符串长度
-Marks-
1 个月前
开发语言
·
c++
·
学习
·
stl
·
stl版本
【C++编程】STL简介 --- (是什么 | 版本发展历程 | 六大组件 | 重要性缺陷以及如何学习)
目录前言一、什么是STL?二、STL的版本(发展历程)三、STL的六大组件四、STL的重要性五、STL的缺陷
Emberone
1 个月前
c++
·
stl
深入理解 C++ STL string:从接口使用到底层模拟实现
输入:输出:string 使用起来很方便,但它的底层通常是一段连续空间。因此,有些操作虽然代码很短,但如果频繁使用,可能会带来大量字符搬移或扩容开销。尤其是在 OJ 或高频字符串拼接场景中,需要注意 insert、erase、operator+、reserve 等操作的使用方式。
进击的荆棘
1 个月前
开发语言
·
c++
·
stl
·
哈希算法
·
散列表
·
unordered_map
·
unordered_set
C++起始之路——用哈希表封装myunordered_set和myunordered_map
💁♂️个人主页:进击的荆棘👇作者其它专栏:《数据结构与算法》《算法》《C++起始之路》SGI-STL30版本源代码中没有unordered_map和unordered_set,SGI-STL30版本是C++11之前的STL版本,这两个容器是C++11之后才更新的。但是SGI-STL30实现了哈希表,只是容器的名字是hash_map和hash_set,它是作为非标准容器出现的,非标准是指非C++标准规定必须实现的,源代码在hash_map/hash_set/set_hash_map/stl_hash_
Xiu Yan
1 个月前
java
·
开发语言
·
c++
·
stl
·
visual studio
Java 转 C++ 系列:STL常用函数
文章参考:黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难写在前面:STL算法有一个使用规律
进击的荆棘
1 个月前
开发语言
·
c++
·
stl
·
unordered_map
·
unordered_set
C++起始之路——unordered_map和unordered_set的使用
💁♂️个人主页:进击的荆棘👇作者其它专栏:《数据结构与算法》《算法》《C++起始之路》<unordered_set> - C++ Reference
进击的荆棘
1 个月前
c++
·
stl
·
set
·
map
C++起始之路——封装红黑树实现map和set
💁♂️个人主页:进击的荆棘👇作者其它专栏:《数据结构与算法》《算法》《C++起始之路》SGI-STL30版本源代码,map和set的源代码在map/set/stl_map.h/stl_set.h/stl_tree.h等几个头文件中。
Xiu Yan
1 个月前
java
·
开发语言
·
数据结构
·
c++
·
stl
·
list
·
visual studio
Java 转 C++ 系列:STL容器之list
文章参考:黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的,其由一系列 结点 组成,而结点则由存储数据元素的 数据域 和存储下一个结点地址的指针域 组成。STL中的链表是一个双向循环链表: 由于链表的存储方式并不是连续的内存空间,因此链表 list 中的迭代器只支持前移和后移,属于 双向迭代器
BestOrNothing_2015
1 个月前
c++
·
迭代器
·
stl
·
vector
·
动态数组
C++零基础到工程实战(4.3.3):vector数组访问与遍历
目录一、前言二、vector是什么2.1 vector本质上是“可变长数组”2.2 vector和普通数组的区别