行为像(值/指针)的类 行为像值的类 每个类的数据成员都有一份自己的拷贝.不共享数据成员.123456789101112131415161718192021222324252627282930313233343536#include <iostream>#include <string>#include <memory>using namespace std;class HasPt 2019-09-12 C++primer读书笔记
StrBlob类封装shared_ptr的文本查询程序 核心: 类之间通过智能指针来共享数据接口和实现分离,并且将shared_ptr<vector<string>>封装成StrBlob类并且通过StrBlobPtr来作为StrBlob的接口StrBlob以及StrBlobPtr实现123456789101112131415161718192021222324252627282930313233343536373839404 2019-09-09 C++primer读书笔记
Floyd小结 Floyd:解决多源最短路径,可以判断环 只要是求最短路的,不妨先想一想是否能用floyd 1000的数据量,且多个源点,恰好适合floydHDU 20661234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859#include &l 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放到字符串流里面,通过流来分割出单词,123456789101112131415161718192021222324252627282930313233343536373839 2019-09-02 C++primer读书笔记
allocator 类的使用方法 new分配内存并且构造对象delete释放内存并且析构对象 注意delete删除指向动态数组的指针123456789101112131415161718192021 1 #include <iostream> 2 #include <cstring> 3 4 using namespace std; 5 6 int main() { 7 char 2019-09-01 C++primer读书笔记 allocator
StrBlob类的实现(shared_ptr与weak_ptr的混用) my_StrBlob.h 实现了2个类StrBlob StrBlobPtr StrBlob成员包含shared_ptr<>,StrBlobPtr这个伴随类有weak_ptr<>和shared_ptr共享一块内存,在2个类之间建立一些接口 作为参数的initializer_list<>的用法,实参数量未知但是实参类型相同,用法和vector类似,但ini 2019-08-31 C++primer读书笔记 智能指针
Sales_data类实现 及 类特性 实现Sales_data类 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687#include <iost 2019-08-24 C++primer读书笔记 类
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 算法 割点
Tarjan求割边 + UVA 796 割点去除后生成>=2的子图 dfs遍历的无向图每个点一次所组成的树就是搜索树割边从无向图删除边e之后,G分裂成2个不相连的子图.称e是图G的桥或者割边 割去除后生成2个子图割边判定法则 当且仅当搜索树存在x的一个子节点y,满足dfn[x] < low[y] low[y] > dfn[x]说明:y点及其子树的所有点 能访问到的搜索树中最早的点比x点还晚,那么就是不能通过( 2019-08-14 算法