CCPP Blog

结构、算法、c、c++

排序:
默认
按更新时间
按访问量

CCPP Blog 目录

CCPP Blog 结构、算法、C、CPP 博客中的所有系列和专栏的目录都可在这里找到

2015-02-07 20:31:35

阅读数:3349

评论数:2

挑战面试编程:查找数组中第k大的数

查找数组中第k大的数 问题: 查找出一给定数组中第k大的数。例如[3,2,7,1,8,9,6,5,4],第1大的数是9,第2大的数是8…… 思路: 1. 直接从大到小排序,排好序后,第K大的数就是arr[k-1]。 2. 只需找到第k大的数,不必把所有的数排好序。我们借助快速排序中pa...

2016-01-08 16:33:23

阅读数:3906

评论数:3

LeetCode-Linked List

Linked ListLinked List Swap Nodes in Pairs Sort List Rotate List Reverse Nodes in k-Group Reverse Linked List Reverse Linked List II Reorder List Rem...

2015-12-18 19:45:03

阅读数:4330

评论数:0

linux系统编程:线程同步-信号量(semaphore)

线程同步-信号量(semaphore) 生产者与消费者问题再思考 在实际生活中,只要有商品,消费者就可以消费,这没问题。但生产者的生产并不是无限的,例如,仓库是有限的,原材料是有限的,生产指标受消费指标限制等等。为了进一步,解决好生产者与消费者问题,引入信号量进机制。 信号量 信号量(sem...

2015-07-26 18:00:46

阅读数:2262

评论数:1

linux系统编程:线程同步-条件变量(cond)

线程同步-条件变量 生产者与消费者问题 再引入条件变量之前,我们先看下生产者和消费者问题:生产者不断地生产产品,同时消费者不断地在消费产品。 这个问题的同步在于两处:第一,消费者之间需要同步:同一件产品只可由一人消费。第二,当无产品可消费时,消费者需等待生产者生产后,才可继续消费,这又是一个同步...

2015-07-26 11:29:10

阅读数:1203

评论数:0

linux系统编程:线程同步-读写锁(rwlock)

线程同步-读写锁(rwlock)读写锁读写锁是互斥量的细化:显然,只有对全局资然进行写入操作时,才需要同步;在对全局资然进行读取操作时,是不需要锁的。pthread_rwlock_t pthread_rwlock_init pthread_rwlock_destroy pthread_rwlock...

2015-07-25 23:16:53

阅读数:1094

评论数:0

linux系统编程:线程同步-互斥量(mutex)

线程同步-互斥量(mutex) 线程同步 多个线程同时访问共享数据时可能会冲突,于是需要实现线程同步。 一个线程冲突的示例

2015-07-25 17:49:11

阅读数:1053

评论数:0

linux系统编程:线程原语

线程原语 线程概念 线程(thread),有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。更多详细解释看百度百科:线程。 在Linux shell下通过命令 $ ps -Lf...

2015-07-17 19:25:30

阅读数:1505

评论数:0

linux系统编程:进程原语

进程原语 1. 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 2. 进程环境 在libc中定义的全局变量environ指向环境变量表,environ没有包含在任何头文件中,所以在使用时要用extern声明。用以...

2015-07-15 19:35:48

阅读数:2030

评论数:3

linux系统编程:进程间通信-mmap

进程间通信-mmap #include <sys/mman.h> void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset); int munmap(void *addr, size_...

2015-07-15 19:23:38

阅读数:1363

评论数:0

linux系统编程:进程间通信-fifo

进程间通信-fifo 进程间通信的另一种方式是fifo。fifo是另一种管道:有名管道。从名字可以看出,它也是队列。 使用fifo通信前,得先创建fifo

2015-07-15 18:23:55

阅读数:1052

评论数:0

linux系统编程:进程间通信-pipe

进程间通信-pipe 进程间通信 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,Inter...

2015-07-15 17:13:10

阅读数:999

评论数:0

前缀、中缀、后缀表达式

前缀、中缀、后缀表达式 1.定义 所谓的前、中、后,是指表达式中运算符相对于运算对象的位置。 中缀 运算符位于运算对象中间,即是中缀表达式。如(1+2)*3-4 最普遍的、最易被人脑理解的是中缀表达式。 前缀 运算符位于运算对象之前,即是前缀表达式。如-*+1234 后缀 运算符位于运算对象之后,...

2015-06-23 16:13:09

阅读数:2508

评论数:0

挑战面试编程:左移字符串

挑战面试编程:左移字符串 问题描述: 左移字符串:如有字符串“abcdefg”,可把它看作是一首尾相连的字符串,左移三个字符后,变为“defgabc”,请编程实现。 方法一: 利用额外的内存空间,实现中转。 步骤1:把“abc”存储到额外空间; 步骤2:把“defg”移动到字符串的首部。至此,“d...

2015-06-17 18:04:29

阅读数:1126

评论数:0

挑战面试编程:大整数的加、减、乘、除

大整数的加、减、乘、除 一切都是有限的,哪怕是看起来无限的时间或空间都很可能是有限的。在计算机中内置类型的加、减、乘、除都是有限的。我们来实现一个“无限”的大整数加、减、乘、除。 以下使用C++代码实现

2015-06-10 10:59:15

阅读数:3452

评论数:2

C++拾遗--类成员指针

C++拾遗--类成员指针 前言 类成员的类型与一般类型不同,那么类成员的指针类型自然与一般类型的指针有所区别。我们有必要来探讨下类成员指针的使用。 正文 类成员指针是指可以指向类的非静态成员的指针。它的类型包括了类类型和所指向的成员类型。一般而言,指针指向的是对象,而类成员指针指向的是...

2015-03-19 21:25:29

阅读数:1179

评论数:0

挑战面试编程:十六进制数转化为八进制数

挑战面试编程:十六进制数转化为八进制数 题目: 问题描述   给定n个十六进制正整数,输出它们对应的八进制数。 输入格式   输入的第一行为一个正整数n (1<=n<=10)。   接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度...

2015-03-17 23:19:15

阅读数:1561

评论数:0

linux系统编程:文件操作--open、create、close

linux C/C++:文件操作--open、create、close 文件描述符 内核(kernel)利用文件描述符(file descriptor)来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。系统...

2015-03-07 23:50:51

阅读数:2478

评论数:1

设计模式:单例模式

设计模式:单例模式 前言 单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。(百...

2015-03-07 20:15:49

阅读数:1016

评论数:0

C++拾遗--lambda表达式原理

C++拾遗--lambda表达式原理 前言 lambda表达式是在C++11新标准中提出的。在lambda表达式中,我们集中梳理了一下它的使用。现在来讨论下它的实现原理。 正文 1.函数对象 类的对象跟括号结合,表现出函数一般的行为,这个对象可以称作是函数对象。

2015-03-05 11:38:49

阅读数:3781

评论数:3

提示
确定要删除当前文章?
取消 删除
关闭
关闭