
C和CPP
文章平均质量分 56
qq_17121501
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数组与指针的总结
array 数组第一个元素的地址 &array[0] 数组第一个元素的地址 &array 数组的地址其中,&array是代表整个数组的地址,而数组的长度为sizeof(array)==10*4个字节,所以&array+1就是加上整个数组长度的地址 ,这与array不同翻译 2016-03-19 15:55:40 · 419 阅读 · 0 评论 -
libevent中的时间管理 - 时间缓存与校正
libevent - note 之 时间管理 - 时间缓存与校正 上一文章中,知道在libevent中,用了小根堆对Timer事件进行管理,其key值对应事件 的超时时间,从小根堆中可以取出最小的超时时间 对于Timer,libevnet有一个时间管理机制,即下面要说到的等待时间管理,时间缓存校正等1.等待时间处理timeout_next()函数 – 计算等待时间 对于Time原创 2017-07-29 17:11:55 · 852 阅读 · 0 评论 -
编程笔试题 - 无序整数数组中,第k小未出现的正偶数
一道编程笔试题,无序整数数组第n小未出现的正偶数 有一个无序整数数组,要求找到第n小未出现的正偶数,实现函数 unsigned int getMinEven(int *a,int len,int n) 示例: {-3,-2,2,4},4,1 输出:6 {2,4,7,8,5,10},6,2 输出:12 {2,2,2,2,2,2},6,2 输出6 要求时间复杂度为原创 2017-08-01 15:41:55 · 534 阅读 · 0 评论 -
编程笔试题 - 判断字符串结构是否相同
一道编程笔试题,判断字符串结构是否相同 判读给定了两个字符串的结构是否相同,比如: “bool”和”pool”输出true; “book”和”feed”输出true; “paper”和”title”输出true; “abcd”和”abc”输出false;这首题乍看似曾相识,考察的是key-value 哈希的知识 bool func(char* s, char* t)原创 2017-08-01 17:53:46 · 624 阅读 · 0 评论 -
一句话总结几种排序算法及其稳定性
排序的稳定性 稳定性: 两记录排序码相等,稳定的排序算法可以保证即使值相等,排序后顺序仍然不变。 因为原序列的顺序可能隐含一些信息,稳定排序算法维持这些信息。冒泡排序(相邻元素排序调):如若两个数值相等,则不会发生交换,故该排序是稳定的。 选择排序(每次选最小的排序):如果较小的元素出现在一个和当前元素相等的元素后面,那么交换后稳定性就被破坏了,故该排序是稳定的。 插入排序(在已经有序的队列原创 2016-03-19 15:47:58 · 749 阅读 · 0 评论 -
libevent札记 - C语言也能实现多态
前言IO复用封装看多态的实现1 统一的关键2 设置 IO demultiplex 机制3 小节0.前言在C++中,提供了虚函数来实现多态,在 C 语言中,这是通过函数指针实现的。 同样的,上面 epollops 以及 epoll 的各种函数都直接定义在了 epoll.c 源文件中,对外都是不可见的。 对 epoll 的使用也是通过 eventop 来完成的,达到了信息隐藏和实现多态的目原创 2017-08-22 13:46:09 · 426 阅读 · 0 评论 -
连续子数组的最大值O(n)解法
原文链接http://blog.nlogn.cn/programming-pearls-the-maximum-sum-of-substring/ 这里头有介绍相应的O(n)解法,查过了同样的问题,不过只有代码,没说对思路 看完之后,会觉得其实很简单,就是当前值要不要把前面的值加上去//find the continunous sun int func(vector<int>& a) {原创 2017-08-28 11:52:01 · 648 阅读 · 0 评论 -
libevent札记 - 多线程安全
原文链接 Libevent 本身不是多线程安全的,在多核的时代,如何能充分利用 CPU 的能力呢,这 一节来说说如何在多线程环境中使用libevent,跟源代码并没有太大的关系,纯粹是使用上的技巧。 1.错误使用示例:在多核的 CPU 上只使用一个线程始终是对不起 CPU 的处理能力啊,那好吧,那就多创 建几个线程,比如下面的简单服务器场景。 1. 主线程创建工作线程 1;原创 2017-08-24 12:39:30 · 1206 阅读 · 0 评论 -
libevent札记 - 代码技巧
阅读了Libevent(version:libevent-2.0.1-alpha)的源码,为了随时能翻阅,这里讲下阅读过程中注意到的代码技巧 原文链接1.多平台代码size_t 用size_t来表示最大可表示的整形,在32位,及64位保证不可溢出 typedef unsigned int size_t; (Win32)typedef unsigned __int64 size_t; (原创 2017-08-22 13:50:47 · 364 阅读 · 0 评论 -
libevent札记 - libevent是怎么开始工作的
1.Reactor模式libevent采用的是Reactor模式,一种事件列表机制,应用程序需要提供相应的接口并注册到Reactor上,如果相应的时间发生,Reactor将主动调用应用程序注册的接口,这些接口又称为“回调函数”。 了解过异步模式的应该知道,异步模式一般也都有回调函数,但在这里,Reactor不是异步的,Reactor更像是一种同步模式框架,尽管可以同时接收多个服务请求,并且依次同步原创 2017-08-22 13:48:30 · 382 阅读 · 0 评论 -
关于一些编程问题的记录总结
以下的问题会一一完善编程基础(C/C++)static关键字的作用? 指针和数组的区别? C++的三个特性是什么? C++如何实现多态? 数据结构堆、栈、队列各自有什么特点?有什么区别? 快速排序算法的时间复杂度是多少? 如何区分普通链表与环形链表? Linux基础Linux下cat是什么指令?Linux下有哪些文本编辑器?Linux下如何在指定目录下查找“CVTE”翻译 2016-03-19 17:03:08 · 412 阅读 · 0 评论 -
C++类与细节
读书笔记翻译 2016-03-24 21:58:38 · 301 阅读 · 0 评论 -
数据结构读书笔记2---表,栈和队列
简单概念链表有简单链表与双向链表STL中的向量和表原创 2016-03-25 13:18:39 · 360 阅读 · 0 评论 -
内存管理 -- 高质量编程
内存分配方式内存分配方式有三种:( 1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量, static 变量。 ( 2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 ( 3) 从堆上分配,亦称动态内存转载 2016-04-11 15:01:58 · 360 阅读 · 0 评论 -
高质量函数C++,C语言设计--指针
摘抄自 高质量C,C++编程指南如果参数是指针,且仅作输入用,则应在类型前加 const,以防止该 指针在函数体内被意外修改。> 例如: void StringCopy(const char *strSource,char *strDestination);如果输入参数以值传递的方式传递对象,则宜改用“ const &”方式来 传递,这样可以省去临时对象的构造和析构过程,从而提高效率。避免函数转载 2016-04-11 12:14:15 · 367 阅读 · 0 评论 -
c++中的关键字--static,this,virtual,volatile与operator
- Static静态数据成员 1.静态数据成员实际上是类域中的全局变量。所以,静态数据成员的定义(初始化)不应该被放在头文件中。 其定义方式与全局变量相同。 2.静态数据成员被 类 的所有对象所共享,包括该类派生类的对象。即派生类对象与基类对象共享基类的静态数据成员 3.静态数据成员可以成为成员函数的可选参数,而普通数据成员则不可以 4.静态数据成员的类型可以是所属类的类型,而普通数据原创 2016-03-27 11:09:43 · 592 阅读 · 0 评论 -
指针难点汇总
指针类型 int *p[3]; P是一个数组指针所指向的内容的类型是整型的,P 是一个由返回整型数据的指针所组成的数组。 int (*p)[3]; P是一个指针“()”为了改变优先级,指针所指向的内容是一个数组,然后再与 int 结合,说明数组里的元素是整型的.所以 P 是一个指向由整型数据组成的数组的指针。 int **p; 多级指针P是一个函数从 P翻译 2016-05-22 22:30:17 · 364 阅读 · 0 评论 -
迭代法与递归法----简单地由递归式推出迭代式
先看下迭代法的用途,迭代法利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。 由于迭代法在单片机的应用 ,故对其进行理解整理如下 。例子1:Un=Un-1 *2; 从上面的递归式子可以推出相应的迭代式子如下int x=1;int y;//假设U0为1,要求相应的y,需要算y次for(i原创 2016-05-22 23:07:56 · 710 阅读 · 0 评论 -
视觉笔记---空间域图像增强
准备知识:空间域,频率域概念,傅里叶变换。Matlab与VC++ 引言:图像增强技术可分成两大类,一类是空间域增强一类是频率域增强。 有些滤波更适合在空间域完成,有些是更适合 频率域完成。 空间域图像增强技术主要包括直方图修正,灰度变换增强,图像平滑化以及图像锐化等。多几种方法联合处理。一、图像平滑1.边界处理中,有增和减的两种方法,如复制像素,常数填充方法,及收缩处理方法。 2.M原创 2016-06-12 20:28:03 · 1267 阅读 · 0 评论 -
OpenCV Android 实例笔记2--摄像头操作
一、打开前置后置摄像头 此段引用自:http://blog.youkuaiyun.com/xiaowang0924/article/details/50624211通过OpenCV Library的方式,不需要编写C、C++代码,只需要引入OpenCV 的Library,一般的路径是OpenCV-3.1.0-android-sdk\OpenCV-android-sdk\sdk\java 将该工程导入ec原创 2016-06-09 00:53:41 · 4051 阅读 · 1 评论 -
C语言陷阱解析--I Do Not Know C
博客原文 http://kukuruku.co/hub/programming/i-do-not-know-c 博主只做翻译和注释 The purpose of this article is to make everyone (especially C programmers) say: “I do not know C”.翻译 2016-06-08 17:59:05 · 811 阅读 · 0 评论 -
libevent中的时间管理 - 小根堆
时间管理 - 小根堆1.最大堆和最小堆 的定义类型名称: 最小堆(MinHeap) 数据对象集: 完全二叉树,每个结点的元素值不大于其子结点的元素值 最大堆同理可得是不是堆要注意从根结点到任意结点路径上结点序列的有序性! 另外 ,关于堆,为了保证数组第一个元素就是heap的根节点, heap基本上都是用数组(或者其他的连续存储空间)作为其存储结构的。2.最小堆的操作2.1 堆的定义//堆的定义原创 2017-07-29 11:35:29 · 1657 阅读 · 0 评论