C/C++
puppylpg
渣渣,努力加油中~
(2019年12月7日13:07:18)以后我的博客就发在个人网站https://puppylpg.github.io/了,欢迎围观
展开
-
memset
首先,memset是一个比较*疼的东西,主要原因是它当初被设计出来主要是原创 2014-11-24 17:33:23 · 1296 阅读 · 0 评论 -
最小生成树(MST):Prim / Kruskal
* 假设T1集合是已加入最小生成树中的点,T2集合是剩下的待加入T2的点 * 我们要做的是把T2集合中离T1最近的那个点,加入T1 * 所以我们需要知道: * 集合T2内各顶点到集合T1的距离 * * 为此,我们用两个数组: * lowcost[i]:用来表示T2中点i到T1的距离; * nearvex[i]:用来表示T2中点i和T1中哪个点最近(为了输出加入时的路径) * nearvex还有一个作用,就是当nearvex[i] = -1时,代表i加入了T1集合 * 实际上如果只是要计算原创 2014-11-24 09:56:29 · 1371 阅读 · 0 评论 -
最短路径:BellmanFord / SPFA / Dijkstra
SPFA是对Bellman-Ford的一种优化,其核心思路就是:不必一直不停地松弛下去,如果当前节点A被松弛了(也就是说当前节点到Source Point的距离变小了),那么A的邻接点B(有可能B通过A得到到达Source Point的最短路径)就需要重新松弛一下:如果B经由A到达Source Point为最短路径,那么B一定会被松弛,否则B不会被松弛。所以,我们需要构建一个队列,当A被松弛之后,所有A的邻接点都要被重新检测一下,看看需不需要被松弛。于是所有A的邻接点入队。之后再从队列中取出一个节点,进原创 2014-12-23 00:12:25 · 994 阅读 · 0 评论 -
linux小记:makefile(随使用程度持续更新)
格式生成多个可执行程序PHONY[我的笔记,仅限自己看懂=.=,也会随着我对makefile的需要程度和认知程度乱序更新]格式makefile的格式:target : prerequisites command //任意的shell 命令注意这个command可以是任意的shell命令。也就是说,如果clean: echo "I love you"当你在命令行中make clea原创 2016-05-21 15:40:25 · 465 阅读 · 0 评论 -
RMS's gdb Debugger Tutorial
How do I use gdb1 How do I compile with debugging symbols2 How do I run programs with the debugger3 How do I restart a program running in the debugger4 How do I exit the debugger5 How do I get hel转载 2016-05-18 13:09:11 · 1311 阅读 · 0 评论 -
康托展开 全排列
今天找到了一篇非常好的介绍康托展开的文章!!! http://www.cnblogs.com/1-2-3/archive/2011/04/25/generate-permutation-part2.html根据这篇文章,写出生成按序排列的全排列非常的简单:#include <iostream>#include <vector>#include <string>#define N 4using原创 2016-04-27 15:59:36 · 476 阅读 · 0 评论 -
C++使用stringstream进行数据类型转换
(参阅:http://www.cppblog.com/sandywin/archive/2007/07/13/27984.html) 在写程序的过程中,我们经常需要进行数据类型的转换,也经常搞混。但是如果使用stringstream的话,就在也不用担心了。sstreamstringstream在头文件<sstream>中,<sstream>库定义了三种类:istringstream、ostring原创 2016-04-27 12:26:19 · 3368 阅读 · 2 评论 -
return临时变量的问题
1. return临时变量问题#include<iostrea>int a,i;int fun(){int b=1,c=2;a=b+c;return a;}i=fun()想问下,是a赋值给i,还是a的临时副本赋值给i?我试过了,会产生临时副本的。兄弟们,我的意思是问,既然a是全局变量了,又不会消失,怎么还会产生临时副本。如果a是局部变量 ,还好理解,因为a出了函数的作用域就会消失,所原创 2016-01-29 16:16:40 · 2224 阅读 · 1 评论 -
qsort对多维数组和结构体的排序
多维数组对于malloc动态申请的多维数组(指针数组)以一个例子解析: 要求—— 打算操作一个数组,数组的每个元素是一个指针,指向2个元素的数组。元素的大小关系为先比较第一个元素,第一个元素相同比较第二个元素。首先,通过malloc对指针数组进行分配: 先分配一个指向元素为int *的一维数组,所以数组类型为int **;然后,针对每一个数组里的int *型指针,分配一个一维数组,数组类型原创 2015-10-03 14:12:36 · 9680 阅读 · 2 评论 -
STL之list
list中的函数代码事例如下:#include #include using namespace std;typedef list INTLIST;//从前向后显示list队列的全部元素void put_list(INTLIST list, char *name){ INTLIST::iterator plist; cout << "The content原创 2015-06-20 19:49:04 · 569 阅读 · 0 评论 -
printf的%*s
近日参加蓝桥杯,有一道关于%×s的填空题把我坑死了,回来特地查了查,发现百度在介绍printf函数的时候竟然举了这个栗子!!!具体是这样用的——#include #includeint main(void){ char ch[20]; int m,n; strcpy(ch,"Happy!"); scanf("%d%d", &m, &n); pr原创 2015-04-17 13:48:22 · 941 阅读 · 0 评论 -
二维数组 指针数组
#includeusing namespace std;int main(){ int v[2][10]={{1,2,3,4,5,6,7,8,9,10},{11,12,13,14,15,16,17,18,19,20}}; int (*a)[10]=v; //数组指针,指向数组(大小为10)的指针 cout<<size原创 2015-04-05 10:45:51 · 642 阅读 · 0 评论 -
C语言 gets() '\n'
C语言gets()函数是否读取'\n'?gets()函数的功能是读取一串字符(读的时候小心溢出),在字符串读入完毕后,末尾输入的'\n'也会被读到,且被读为'\0'。代码验证如下——一开始,我们将char型数组a全部初始化为'1',之后输入“1234567回车”,通过调试窗口我们可以看到a[0]~a[6]分别为1234567,而a[7]由刚开始的'1'变成了000,即'\0',原创 2015-02-06 13:36:03 · 2639 阅读 · 0 评论 -
区间第K大数
问题描述给定一个序列,每次询问序列中第 l 个数到第 r 个数中第 K 大的数是哪个。输入格式第一行包含一个数 n,表示序列长度。第二行包含 n 个正整数,表示给定的序列。第三个包含一个正整数 m,表示询问个数。接下来 m 行,每行三个数 l,r,K,表示询问序列从左往右第 l 个数到第 r 个数中,从大往小第 K 大的数是哪个。序列元素从 1 开始标号。输出格式原创 2015-02-06 15:06:30 · 783 阅读 · 0 评论 -
详解几个sscanf和sprintf的例子
sscanf("iios/12DDWDFF@122","%*[^/]/%[^@]",buf);运行过程是这样的:原创 2014-11-02 14:08:30 · 1696 阅读 · 0 评论 -
堆栈和堆
堆和栈主要的区别有以下几点: 1、管理方式不同:对于栈来讲,是由编译器自动管理,无需我们手工控制;对于堆来说,释放工作由程序员控制,容易产生memoryleak。 2、空间大小不同; 3、能否产生碎片不同; 4、生长方向不同; 5、分配方式不同; 6、分配效率不同; 管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制;对于堆来说,释放转载 2014-11-22 19:10:32 · 941 阅读 · 0 评论 -
C++ 输入输出运算符重载 感想
在C++中,经常会对输入输出运算符进行重载,而在重载的时候用到了友元(Friends)和引用返回(Returning References),这里对为什么会这么用发表一些思考。 比如,下面的类是一个简单的Student类,其中重载了<<和>>。//// Created by lgl on 17-3-14.//#include <iostream>#include <string>#inc原创 2017-03-14 17:39:29 · 6006 阅读 · 2 评论