技术栈
stl
a353541382
7 小时前
stl
STL之Vector
std::vector是一个连续存储的动态数组,位于头文件 <vector>中,属于 C++ 标准模板库(STL)的序列式容器。
qeen87
21 小时前
c++
·
学习
·
算法
·
迭代器
·
stl
【C++】vector的模拟实现详解(二)
在上一篇文章中,我们已经认识了 C++ 标准库中的 vector,并学习了构造、遍历、扩容、插入和删除等常用接口。
红豆诗人
2 天前
c++
·
stl
C++ string 和 vector 基础:从常用接口到模拟实现
学到 STL 的时候,我一开始最容易犯的错误是:把 string 和 vector 当成一堆接口来背。
鱼子星_
2 天前
开发语言
·
c++
·
笔记
·
stl
【C++】vector
vector是 C++ 标准模板库(STL)中的动态数组容器,支持动态调整大小、快速随机访问和灵活的插入与删除操作。可以将vector看成是一个动态顺序表或者是可变长数组。不过,与数据结构中的顺序表不同的是,vector支持不同类型的vector容器的对象同时存在。而它能支持这个功能是因为vector是底层是一个模板类。
阿米亚波
5 天前
开发语言
·
c++
·
笔记
·
stl
·
visual studio
·
forward_list
【C++ STL】std::forward_list
展示 forward_list 的多种构造方式,包括默认、填充、范围、初始化列表、拷贝、移动及自定义类型构造。
阿米亚波
7 天前
c++
·
windows
·
笔记
·
stl
·
list
【C++ STL】std::list
展示了 list 的 6 种构造方式:默认、填充、范围、拷贝、移动和初始化列表。演示了使用 = 和 assign 进行内容替换的各种方式。
阿米亚波
9 天前
数据结构
·
c++
·
笔记
·
算法
·
stl
【C++ STL】std::deque
定义了在 deque 中使用的自定义类 Student 和 Task,并重载了必要的运算符以支持比较和输出。
知无不研
11 天前
开发语言
·
数据结构
·
c++
·
stl
用c++写一个简单vector
使用 ::operator new 分配原始内存,然后通过 placement new 在指定地址构造对象,并显式调用析构函数来销毁对象。这与真实 STL 采用 std::allocator 的原理一致,但代码更直观。
qeen87
11 天前
c++
·
学习
·
stl
·
模板
〖C++〗STL简介:发展历史、六大组件与简单应用
在前面学习 C++ 模板时,我们知道模板可以帮助我们编写与类型无关的通用代码。例如,我们可以通过模板实现一个通用的交换函数,让它既能交换 int,也能交换 double、char 等不同类型的数据。
CHHH_HHH
10 天前
开发语言
·
c++
·
算法
·
stl
·
c++11
【C++11】深入解析C++可变参数模板
在之前,如果我们想要实现一个函数可以接收不同类型的参数,我们可以通过模板来实现;那如果想要它接收不同数量的参数怎么办呢?在以前我们可以通过函数重载来实现,但是这种方法非常麻烦,要写多个函数。于是,C++11引入了可变参数模板。
一拳一个呆瓜
12 天前
c++
·
stl
【STL】iostream 编程:二进制输出文件
本文介绍一下二进制输出文件的规则及其作用。流最初是为文本处理设计的,因此文件输出默认采用文本模式。在文本模式下,写入时单个换行符 \n 会自动扩展为 Windows 系统的回车 + 换行双字符 \r\n。这种自动转换会破坏二进制数据,示例如下:
一拳一个呆瓜
13 天前
c++
·
stl
【STL】iostream 编程:缓冲区的作用
本文介绍一下缓冲区这个概念,着重看一下示例,不然在用的时候会有错误的理解。下面示例能够直观体现缓冲区带来的效果。按照直观逻辑,程序应当先打印 please wait,等待 5 秒后再输出剩余内容,但实际运行未必如此——根源在于输出带有缓冲区。
一拳一个呆瓜
13 天前
c++
·
stl
【STL】iostream 编程:文件输出流的成员函数
本文介绍文件输出流相关的成员函数,包括用法和示例。文件输出流的成员函数分为三类:处理顺序式、带格式的文本输出时,仅使用插入运算符 << 和各类操纵符就足够。 若要对磁盘二进制文件执行随机读写,就需要使用其他专用成员函数,这类函数可以搭配插入运算符使用,也可以单独调用。
一拳一个呆瓜
14 天前
c++
·
stl
【STL】iostream 编程:使用插入运算符并控制格式
本文介绍如何使用插入运算符、如何控制输出格式,以及如何为自定义类重载插入运算符。插入运算符 << 已预先为所有 C++标准数据类型实现,作用是将字节数据写入输出流对象。插入运算符可配合预定义的流操纵符使用,操纵符能够修改整数的默认输出格式。 你可以通过以下四类配置控制输出样式:
努力中的编程者
16 天前
开发语言
·
c++
·
算法
·
stl
·
vector
STL-vector的模拟实现
在 STL 源码中,vector 根本没有什么 int size 或 int capacity 成员变量,而是通过迭代器来实现的
BadBadBad__AK
23 天前
c++
·
数学
·
算法
·
stl
线段树维护区间 k 次方和
维护一个长度为 \(n\) 的数组,支持以下操作:记 \(S_t = \sum a_i^t\) 表示区间内所有数的 \(t\) 次方和,我们需要维护 \(t = 0,1,\cdots,K\) 的所有 \(S_t\)。
Irissgwe
1 个月前
数据结构
·
c++
·
算法
·
二叉树
·
stl
·
c
·
红黑树
map/set/multimap/multiset 的底层逻辑与实现
目录底层原理红黑树红黑树结构红黑树插入情况一: cur为红,p为红,g为黑,u存在且为红。情况二: cur为红,p为红,g为黑,u不存在/u存在且为黑
一拳一个呆瓜
1 个月前
c++
·
stl
【STL】_SCL_SECURE_NO_WARNINGS
在 C++标准库中,若调用任何存在安全威胁的方法,将导致编译器警告(等级3)C4996。若要禁用此警告,请在代码中定义宏 _SCL_SECURE_NO_WARNINGS.
Irissgwe
1 个月前
c++
·
stl
·
queue
·
stack
C++ STL 详解:stack 和 queue 的介绍使用与模拟实现
stack 是一种容器适配器,主要用在“后进先出”的场景里所谓后进先出,也就是 Last In First Out,简称 LIFO
Irissgwe
1 个月前
开发语言
·
c++
·
stl
·
set
·
map
·
multiset
·
关联式容器
C++ STL关联式容器详解:set、multiset、map、multimap
摘要:本文详细讲解 C++ STL 中四种树形结构关联式容器——set、multiset、map 和 multimap。文章从关联式容器的概念入手,对比了树形结构与哈希结构的区别,介绍了键值对(pair)的基本用法。随后逐一深入讲解 set(去重与排序)、multiset(允许重复)、map(键值对存储与 operator[] 下标访问)和 multimap(一对多映射)的定义方式、常用接口、插入查找删除操作及代码示例。最后通过对比表格总结四者的核心差异,帮助读者在实际开发中快速选择合适的容器。