随笔分类 - c/c++
摘要:标兵结点(头结点)是在链表中的第一个结点,不存放数据,仅仅是个标记利用标兵结点可以简化代码。下面实现双向链表中的按值删除元素的函数,分别实现带标兵结点和不带标兵结点两版本,对比可见标兵结点的好处。结点声明如下:struct Node{ int value; Node *prev; Node *nex...
阅读全文
摘要:在Linux下编程习惯了使用命令行参数,故使用VS2010时也尝试了一下。新建项目,c++编写程序如下:#include#includeusing namespace std;int main(int argc,char*argv[]){ ifstream fin(argv[1],ios::in);...
阅读全文
摘要:在多线程编程中,常常需要从主线程传递参数给子线程或在主线程中获得子线程的计算结果,若使用全局变量实现,必然需要对临界区保护,因此导致大量的切换工作造成效率的低下;而利用进程间的参数传递可以解决这一问题。两个方向的参数传递:1.主线程向子线程传递参数:通过函数 int pthread_create(p...
阅读全文
摘要:本程序实现在指定目录下递归查找无效的符号链接。1.设计思路逐个读取给定目录中的目录项,判断类型(1)若为目录,则读取该目录中的目录项并判断类型;(2)若为链接文件,则读取出其指向文件的名称(绝对/相对路径);若内容为绝对路径(以/开头),直接作为目标文件的路径;若内容为相对路径(不以/开头),将链接...
阅读全文
摘要:本程序实现从文件中随即选取一行,每行被选中的概率与改行长度成正比。程序用一次遍历,实现带权随机选取。算法:假设第i行权重wi(i=1...n).读取到文件第i行时,以概率wi/(w1+w2+...+wi)用该行替换上一轮被选中的行,直至读取文件结束。这样可以从数学上保证i行被选中的概率为wi/(w1...
阅读全文
浙公网安备 33010602011771号