
数据结构和算法
文章平均质量分 64
foDol
底层员工:负责底层基础库建设
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
std::shared_ptr 与 std::unique_ptr 删除器设计差异
std::shared_ptr和unique_ptr可以通过自定义删除器的方式来定义析构过程,但是这两者删除器的设置又有一些不同,本文尝试分析这两者出现差异的原因。原创 2025-06-05 16:42:29 · 760 阅读 · 0 评论 -
数据结构:堆
数据结构:堆原创 2022-07-05 14:57:47 · 322 阅读 · 0 评论 -
数据结构和算法:三、串的比较
一、朴素模式匹配思路:在主串s1中找字串s2,找到返回s1中的下标,找不到返回-1,可以指定寻找开始下标pos,pos的默认值为0。int stringIndex(std::string s1, std::string s2, int pos = 0){ long long n1 = s1.size(), n2 = s2.size(); for(long long i = pos; i <= n1 - n2; ++i) { long long j = 0原创 2022-04-21 17:58:26 · 1083 阅读 · 0 评论 -
数据结构和算法:二、栈和队列
问题:用智能指针确实在程序运行结束后全部归还了,但是如果是下边这样调用,用top命令查看内存使用情况,发现内存占用一直很高,并不会因为pop而减小。stack<int> s0;for(int i = 0; i != num; ++i){ s0.push(i);}for(int i = 0; i != num; ++i){ s0.pop();}而如果是下边这种,则内存占用会一直很低。for(int i = 0; i != num; ++i){ s原创 2022-04-20 22:33:49 · 645 阅读 · 0 评论 -
数据结构与算法:一、线性表的顺序存储结构SeqList和链式存储结构LinkList
实现了线性表的链式存储结构和线性存储结构,能进行插入元素O(n),删除元素O(n),查找元素O(n)和返回线性表长度O(1)的操作。其中链式存储结构使用了C++11的智能指针进行内存管理。一、顺序存储结构SeqList定义了数据类型ElemType,便于修改使用状态stat,表示操作成功/失败定义了线性表的长度length和用于存储数据的数组List[]函数:三个插入函数:stat insertElem(int index, ElemType *e);用下标插入stat pus.原创 2022-04-19 16:10:13 · 1155 阅读 · 0 评论