vector stl

vector

参考https://blog.csdn.net/qq_50285142/article/details/122303529 初始化 vector<int> a; //定义了一个名为a的一维数组,数组存储int类型数据vector<double> b;//定义了一个名为b的一维数组,数组存储doubl ......
vector

【gdb】让GDB支持STL的标准库的方法

本文源自http://sourceware.org/gdb/wiki/STLSupport 正常情况下,gdb没法直观的打印出stl标准库中的容器之类的,调试起来非常困难了。 如vector,queue, deque, list等。 如vector<int> a (gdb) p a $1 = {<s ......
标准 方法 gdb GDB STL

C++ STL之向量vector

/*vector_example.cpp*/ #include <iostream> #include <vector> #include <string> using namespace std; int main() { vector<string> msg = {"Hello", "C++", ......
向量 vector STL

STL迭代器(iterator)

http://c.biancheng.net/view/6675.html 迭代器类别 常用的迭代器按功能强弱分为输入迭代器、输出迭代器、前向迭代器、双向迭代器、随机访问迭代器 5 种。 迭代器的定义方式 尽管不同容器对应着不同类别的迭代器,但这些迭代器有着较为统一的定义方式,具体分为 4 种,如表 ......
iterator STL

C++STL进阶:pb_ds库

Windows, 64bit G++ (ISO c20) stack=268435456 开启O2优化 万能头文件 CodeForces在 \(\tt C^{20(64)}_{++}\) 版本下无法使用 bits;如果需要使用 priority_queue 则无法使用 using(会和 std 撞名 ......
pb_ds STL pb ds

合并果子题解-C++ STL priority_queue容器的使用

说明:本博文关于priority_queue容器的说明来源于www.cnblogs.com/fusiwei/p/11823053.html 本人是刚刚接触算法竞赛的萌新,如果有大佬发现了错误,还望指出(真的有人会看本蒟蒻的博文吗) 这是我的第一篇博文,更多是作为测试 以后会将博客作为笔记记录学习的体 ......
题解 果子 priority_queue 容器 priority

STL (9/16)

系统为某一程序分配空间时和空间大小无关,只和申请次数有关 vector 1.遍历方式 初始化可以 =make_pair(1 , 2); 也可以 ={1,2}; string substr()::取子集,输入区间下标; c_str() ::返回首地址 queue 优先队列(堆) 默认大跟堆 小跟对方式 ......
STL 16

C++ STL 编程指北

C++ STL 编程指北 未避免歧义,所有容器的swap方法和不常用方法均未写 1. vector 向量容器 用一句话来说,vector就是可变长数组。 但vector所支持的可变长特性,并不是在原空间之后接续新空间来实现的,因为无法保证之后尚有可供分配的空间。 底层实现上当增加新元素时,如果当前v ......
STL

论文阅读: Co-design Hardware and Algorithm for Vector Search

1. Introduction 介绍一下论文背景, 向量检索常用于 搜索引擎,推荐系统,LLM和科学计算等 对应的常用的硬件向量检索方法,IVF-PQ 其中IVF:将多个向量聚类, PQ将向量压缩 而为了最大化IVF-PQ的效果,也会面临很多的挑战 在芯片设计的过程中,会遇到针对六个阶段如何设计合适 ......
Co-design Algorithm Hardware design Vector

vector迭代删除元素

vector迭代删除元素, vector使用erase删除一个元素后, 数组移动, 原来的迭代器没用了, erase会返回新的iter, 指向当前元素后面的一个元素 #include <iostream> #include <vector> using namespace std; int main ......
元素 vector

STL(12) RBTREE 红黑树

目录红黑树的基本原理基本要求变色和旋转rbtree源码G2.9示例2.94.9treenode的构造 关联式容器: 查找快,插入快 STL中的主要代表:红黑树,hashtable 红黑树的基本原理 单个结点来看,左孩子小于根节点,右孩子大于根节点(二叉搜索树) 红黑树是什么,有什么意义:排序二叉树有 ......
RBTREE STL 12

C++中STL用法汇总

1 什么是STL? STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库(C++ Standard Library)中,是ANSI/ISO C++标准中最新的也是极具革命性的一部分。该库包含了诸多在计算机科学 ......
STL

STL(11) deque stack queue

目录源码 G2.9buffersize的自定大小insert模拟连续空间-的重载++--重载+=重载gnu c 4.9queuestack其他的底层结构 容器deque,双向开口的queue 容器结构的表示 是一种分段连续的假象,当需要分配的时候,向前面再分配一个buffer 迭代器的构造如图,no ......
deque stack queue STL 11

C++ STL

Dev-C++ 可在 工具 -> 编译选项 -> 代码生成 / 优化 -> 代码生成 -> 语言标准 中选择 “ISO C++11” 或 “GNU C++11” 来支持 C++11 的新特性(蓝Dev 还不支持 C++14) 不声明下,区间均为左闭右开区间,typename 表示一个数据类型而不是 ......
STL

【转载】用vector::erase对vector遍历删除

在对vector中的元素进行遍历删除时遇到了一点问题,查博客发现博客上并不靠谱。在此记录,共同进步。vector循环遍历正确代码: for(vector<int>::iterator it=vec.begin(); it!=vec.end();){ if(*it == 3){ vec.erase(i ......
vector erase

STL(10) array forward_list

目录 array在c++中本就存在,而为什么要包装称为容器 要遵守容器的原则,要实现iterator,要享受标准库中的算法等 由于不可扩充,所以需要指定大小 ......
forward_list forward array list STL

vector的入队

这样会使用复制构造函数6次;push_back()是往后推,会复制一份 struct Vectex{ float x,y,z; Vectex(float x,float y,float z) :x(x),y(y),z(z) {} Vectex(const Vectex& Vectex) :x(Vec ......
vector

STL(9) vector

目录底层两倍增长的原理vector的iteratorgnu c 4.9 动态增长的数组 底层 数组,支持动态扩充 在某一个点上,需要在内存的别的地方找到空间,进行扩充 扩充方式,当到达了一个阈值,在内存中找到另一个空间,进行成倍增长 sizeof vector为12 内部有三根指针,start en ......
vector STL

STL(8) 迭代器设计原则和traits

目录iterator的原则以rotate为例子五种类型traits Traits:特征 Traits就是说你丢给他一个东西,希望得到某些特征 iterator的原则 是算法和容器的桥梁 用iterator告诉算法操作范围 在操作的过程中,算法想知道iterator的性质,从中选择最佳化的动作 以ro ......
原则 traits STL

C++ STL之map、multimap

map和multimap是C++ STL(Standard Template Library)中的关联容器,它们提供键值对的存储和访问。 map是一个有序关联容器,它存储一组键值对,其中每个键都是唯一的。map中的键值对按照键的升序排序。用户可以通过键来访问、修改和删除对应的值。map的实现通常使用 ......
multimap STL map

C. Nearest vectors 计算几何

Problem - C - Codeforces 题意:就如题目所说,从n个向量中,找出两个夹角最小的,输出他们的idx,向量的一个坐标是原点,input中给出了他们的另一个端点的坐标。 做法:先计算出他们与向量(1,0)的夹角,如何算呢?余弦定理,先叉乘后除两向量的长度,得到cos,再用acos函 ......
几何 Nearest vectors

STL——bitset的使用方法

# bitset ## 介绍 类似 $bool$ 数组一样的东西,储存的是二进制,但是每一位只占 $1bit$,可以优化你算法的时间和空间复杂度。 ## 储存 开一个bitset为: ```cpp bitsetbs; ``` 最左边为最低位(即第 $0$ 位),最右边为最高位。 在初始化的时候,是从 ......
使用方法 方法 bitset STL

STL(7) list

[toc] #源代码分析GNU 2.9 ![](https://img2023.cnblogs.com/blog/3239608/202309/3239608-20230909004927854-1070112772.png) ##存储对象 ![](https://img2023.cnblogs.c ......
list STL

vector操作过程中出现的地址错误

`2023-08-25 15:09:42` `start writing:2023.8.25 14:15` `事情的起因又是邪恶的 yqt ...` `为什么每次跟他都会遇到奇怪的事情` #### 注——这只是一个对在劳累却有趣的 OI 生涯中遇到的插曲的记录,不是专业人士,对内容的研究也只是浅尝辄 ......
错误 过程 地址 vector

STL在遍历过程中操作地址的改变

`2023-08-26 09:57:22` `start writing 2023.8.26 9:18` 又遇到奇怪错误了,其实在打模拟赛(wzOI 2023.8.24 T1)的时候就发现有这个问题了,赛后来研究一下。 以下代码: ```cpp //check是一个返回值为 bool 类型的判断函数 ......
过程 地址 STL

126.STL 之 空间配置器(allocator)

# 126.STL 之 空间配置器(allocator) ## 1.SGI 标准的空间配置器,std::allocator SGI也定义了一个符合部分标准,名为allocator的配置器,但是它自己不使用,也不建议我们使用,主要原因是效率不佳。 **它只是把C++的操作符::operator new ......
allocator 空间 126 STL

STL(6) 分配器

[toc] 不直接使用,是幕后英雄,选择合适的分配器可以提高效率 #operator new()和malloc() operator new()在最底层会调用malloc() ![](https://img2023.cnblogs.com/blog/3239608/202309/3239608-20 ......
分配器 STL

STL学习笔记

# 迭代器 迭代器(iterator)是一种抽象的设计概念,现实程序语言中并没有直接对应于这个概念的实物。在>一书中提供了23中设计模式的完整描述,其中iterator模式定义如下:提供一种方法,使之能够依序寻访某个容器所含的各个元素,而又无需暴露该容器的内部表示方式。 ## 迭代器案例 ```cp ......
笔记 STL

STL(5) 必要基础:操作符重载和模板

[toc] #操作符重载 operator overloaded ##四个不能重载的操作符 1. ::域 2. . 成员获取 3. .* 4. ?:判断语句 ##基本语法 下图说明了对于不同数量的变量如何去重载 ![](https://img2023.cnblogs.com/blog/3239608 ......
操作符 模板 基础 STL

STL学习笔记

# 迭代器 迭代器(iterator)是一种抽象的设计概念,现实程序语言中并没有直接对应于这个概念的实物。在>一书中提供了23中设计模式的完整描述,其中iterator模式定义如下:提供一种方法,使之能够依序寻访某个容器所含的各个元素,而又无需暴露该容器的内部表示方式。 ## 迭代器案例 ```cp ......
笔记 STL