动态内存管理类StrVec的实现 实现一个动态内存管理类 StrBlob中vector<string>可以管理元素的内存. 实现一个vector<string> allocator<>类是分配的原始内存,当调用alloc.destroy(first_free), 按道理来说destroy执行对象的析构函数,string的析构函数执行完后会回收内存,再访问该string就访问越界了 但是如果在d 2019-09-14 编程语言 > C与C++
行为像(值/指针)的类 行为像值的类 每个类的数据成员都有一份自己的拷贝.不共享数据成员.1234567891011121314151617181920212223242526272829303132333435#include <iostream>#include <string>#include <memory>using namespace std;class HasPtr 2019-09-12 编程语言 > C与C++
StrBlob类封装shared_ptr的文本查询程序 核心: 类之间通过智能指针来共享数据接口和实现分离,并且将shared_ptr<vector<string>>封装成StrBlob类并且通过StrBlobPtr来作为StrBlob的接口StrBlob以及StrBlobPtr实现12345678910111213141516171819202122232425262728293031323334353637383940414 2019-09-09 编程语言 > C与C++
Floyd小结 Floyd:解决多源最短路径,可以判断环 只要是求最短路的,不妨先想一想是否能用floyd 1000的数据量,且多个源点,恰好适合floydHDU 20661234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859#include < 2019-09-08 算法与数据结构 > 图论
HDU 2196 树形dp 求树中每个点离它最远点的距离HDU 2196 树形dp123f[u][0]:有向图dfs通过回溯(距离由子节点更新得到)求出距离每个点最远的距离,并且标记到最远点路径中经过的第一个子节点f[u][1]:dfs回溯时更新第二远的距离f[u][2]:再一次dfs根据标记 求出点u上半部分距离点u最远的距离 点v离它最远的点可能在2个部分,该节点的子树部分,或者是整棵树除去子树的部分,用邻接表存 2019-09-04 算法与数据结构 > 搜索与动态规划
shared_ptr实现类的数据共享(文本查询类的定义 面对过程 vector<>来存输入文件的每一行 map<string,set<int>>,每一个单词映射一个集合,集合包含其出现的行数 istringstream:将每一行string放到字符串流里面,通过流来分割出单词,12345678910111213141516171819202122232425262728293031323334353637383940 2019-09-02 编程语言 > C与C++
allocator 类的使用方法 new分配内存并且构造对象delete释放内存并且析构对象 注意delete删除指向动态数组的指针1234567891011121314151617181920 1 #include <iostream> 2 #include <cstring> 3 4 using namespace std; 5 6 int main() { 7 char *r = 2019-09-01 编程语言 > C与C++ #allocator
StrBlob类的实现(shared_ptr与weak_ptr的混用) my_StrBlob.h 实现了2个类StrBlob StrBlobPtr StrBlob成员包含shared_ptr<>,StrBlobPtr这个伴随类有weak_ptr<>和shared_ptr共享一块内存,在2个类之间建立一些接口 作为参数的initializer_list<>的用法,实参数量未知但是实参类型相同,用法和vector类似,但initi 2019-08-31 编程语言 > C与C++ #智能指针
Sales_data类实现 及 类特性 实现Sales_data类 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687#include <iostream 2019-08-24 编程语言 > C与C++ #类
BZOJ 1123 无向图割点_Tarjan BZOJ 1123 题意给出一个无向图,n个点m条边,输出n个整数.第i个整数表示把节点i关联的所有边去掉后无向图中有多少个有序对(x,y),满足x和y不联通 思路 去掉非割点,那么整个图分为成了1个点和(n-1)个点组成的连通图,有序对指的是双向:(x,y),(y,x).此时答案=2*(n-1) 去掉割点.那么至少会被分成3块连通图, 割点自身 割点的子节点s1,s2,...可能有多个点满足 2019-08-14 算法与数据结构 > 图论 #割点