c++
文章平均质量分 87
清风lsq
所发博客,都是个人学习记录,为了后续自己的回忆温习,有错请理解,要甄别。
展开
-
dropbox 、tombstones、debuggred
android 系统异常常见的调试手段和信息原创 2022-10-31 20:09:55 · 1467 阅读 · 0 评论 -
c++与c 的知识点
c 与c++ 的知识加强点原创 2022-10-31 20:07:23 · 591 阅读 · 1 评论 -
自定义hal 接口实现流程
实现自定义的hal 接口原创 2022-10-31 20:04:19 · 1493 阅读 · 0 评论 -
android selinux 权限解决
android selinux de avc 解决。原创 2022-10-31 19:58:51 · 1026 阅读 · 0 评论 -
android 新增一个服务编译,运行
在被使用中的任何一个mk文件中去加一条, 如果是已经编译好的,就放到一个目录下去,在mk文件中用PRODUCT_COPY_FILES += 存放目录:目标目录我在devices/qcom 下增加一个xxx bin程序,在整个系统一起编译时需要device/qcom/msm8953_64/msm8953_64.mk 里增加PRODUCT_PACKAGES += xxx 其中xxx为模块名字。原创 2022-10-31 19:54:49 · 382 阅读 · 0 评论 -
c++指针初识
在C++编程中使用指针能有速度快,节约内存等优点,是很多C++程序员的最爱。但指针是一把双刃剑,用好了它,你就会发现指针有多么的方便,反之,你可能就头疼了,往往会出现意想不到的问题。 一.什么是指针: 其实指针就像是其它变量一样,所不同的是一般的变量包含的是实际的真实的数据,而指针只是一个指示器,它告诉程序在内存的哪块区域可以找到数据。 这是一个非常重要的概念,有很多原创 2016-05-25 11:27:20 · 343 阅读 · 0 评论 -
c++引用的总结
c++引用的总结(转自点击打开链接)另外附上一篇有意思的文章,观点和本文有些出入,值得一看点击打开链接对于习惯使用C进行开发的朋友们,在看到c++中出现的&符号,可能会犯迷糊,因为在C语言中这个符号表示了取地址符,但是在C++中它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的办法。引用是C++引入的新语言特性,是C++常用的一个重转载 2016-05-24 20:08:52 · 437 阅读 · 0 评论 -
再探指针
原文地址:点击打开链接指针的概念指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。 先声明几个指针放着做例子: 例一: int *ptr; char *ptr; in转载 2016-05-26 16:28:35 · 346 阅读 · 0 评论 -
srand((unsigned)time(NULL))详解
srand函数是随机数发生器的初始化函数。原型:void srand(unsigned seed);用法:它初始化随机种子,会提供一个种子,这个种子会对应一个随机数,如果使用相同的种子后面的rand()函数会出现一样的随机数,如: srand(1); 直接使用1来初始化种子。不过为了防止随机数每次重复,常常使用系统时间来初始化,即使用 time函数来获得系统时间,它的返回值为从 00:原创 2016-05-26 20:34:11 · 125719 阅读 · 29 评论 -
c中的\n和单双引号
1、scanf中通常是不需要加\n的,不加的时候,从键盘输入回车,表示输入结束了;如果加了\n,键盘输入的回车就被当成输入的字符了,需要再次输入非空白的字符才能结束输入,而且容易导致混乱,所以不建议在scanf中加\n2、printf中的\n就很好理解了,就是表示输出一个换行。3、双引号里面的是字符串 而单引号里面的代表字符,你可以这样理解 只要是在双引号里面的不代表任何表达式的意义,看下原创 2016-05-26 22:18:34 · 1839 阅读 · 0 评论 -
c++统计程序运行时间的方法
总结下c++中统计程序运行时间的方法。1:void main(){time_t t1;time(&t1);for(int i=0;i<1000000000;i++){int a=i;}time_t t2;time(&t2);printf("已运行%d秒\n",t2-t1);2:VC的话有profile,在链接属性页勾选profile项,然后profile(在编译菜原创 2016-05-27 18:03:05 · 10563 阅读 · 0 评论 -
c++智能指针的简介
C++智能指针是行为类似于指针的类对象。它使用设计模式中的代理模式,代理了原始“裸”指针的行为,为指针添加了更多更有用的特性。 C++引入异常机制后,智能指针由一种技巧升级为一种非常重要的技术,因为如果没有智能指针,程序员必须保证new对象能在正确的时机delete,四处编写异常捕获代码释放资源,而智能指针则可以在退出作用域时——不管是正常离开或是因异常离开——总调用delet原创 2016-05-25 17:33:51 · 416 阅读 · 0 评论 -
指针与引用一些区别
一篇非常不错的文章,转自点击打开链接。加了自己的一点修改和理解写在前面指针和引用形式上很好区别,但是他们似乎有相同的功能,都能够直接引用对象,对其进行直接的操作。但是什么时候使用指针?什么时候使用引用呢?这两者很容易混淆,在此我详细介绍一下指针和引用,力争将最真实的一面展现给大家。如果我喷得不够好,希望嘴下留情、手下留命,还请指点一二;如果感觉还不错,请大家鼓掌。转载 2016-05-25 11:53:58 · 337 阅读 · 0 评论 -
c++中:和::的用法
觉得这篇文章总结的十分好,转载于:http://fengqing888.blog.163.com/blog/static/3301141620100623933512/1.冒号(:)用法(1)表示机构内位域的定义(即该变量占几个bit空间)typedef struct _XXX{unsigned char a:4;unsigned char c;}转载 2016-05-22 22:19:28 · 1752 阅读 · 0 评论 -
c++中的 template<class Type>
c++集合了过程式语言,通用语言,面向对象语言的众多特点。模板是通用语言的特性,模板又叫参数化类型(parametrized types)。模板的定义。以下是模板定义的一般格式: template //class 也可以换成typename,后者是新来的。 void swap(any &a,any &b) { ...... }利用模板机制可以显著减少原创 2016-05-22 21:28:06 · 8237 阅读 · 0 评论 -
c++中的cin,cout
cin and cout输入和输出并不是C++语言中的正式组成成分。C和C++本身都没有为输入和输出提供专门的语句结构。输入输出不是由C++本身定义的,而是在编译系统提供的I/O库中定义的。C++的输出和输入是用“流”(stream)的方式实现的。图3.2和图3.3表示C++通过流进行输入输出的过程。有关流对象cin、cout和流运算符的定义等信息是存放在C++的输入输出流库中原创 2016-05-22 11:48:45 · 882 阅读 · 0 评论 -
assert的用法简介
C++ assert()函数原型及介绍如下:C++0x中引入了static_assert这个关键字,用来做编译期间的断言,因此叫做静态断言。其语法很简单:static_assert(常量表达式,提示字符串)。如果第一个参数常量表达式的值为真(true或者非零值),那么static_assert不做任何事情,就像它不存在一样,否则会产生一条编译错误,错误位置就是该st原创 2016-05-22 10:55:04 · 403 阅读 · 0 评论 -
C/C++ 代码换行问题
C/C++ 代码换行问题在Windows中 回车换行(\n\r):每次光标移到下一行的行首位置处; '\r' 回车,回到当前行的行首,而不会换到下一行,如果接着输出的话,本行以前的内容会被逐一覆盖; '\n' 换行,换到当前位置的下一行,而不会回到行首;Unix系统里,每行结尾只有“”,即"\n";Windows系统里面,每行结尾是“”,原创 2016-05-21 10:49:58 · 16394 阅读 · 0 评论 -
#define用法
转自:http://www.dingge.com/main/article.asp?id=10今天整理了一些#define的用法,与大家共享!1.简单的define定义#define MAXTIME 1000一个简单的MAXTIME就定义好了,它代表1000,如果在程序里面写if(i编译器在处理这个代码之前会对MAXTIME进行处理替换为1000转载 2016-05-14 20:39:17 · 443 阅读 · 0 评论 -
C++中的宏替换
1.引子#define cat(x, y) x ## y那么cat(a, b)和cat(cat(a, b), c)的结果是啥.#define str_impl(x) #x#define str(x) str_impl(x)的意图何在.2.规则宏替换是C/C++的预处理中的一部分,在C++标准中有4条规则来定义替换.规则1:实参替换.本条规则描述带参数转载 2016-05-14 18:34:34 · 2308 阅读 · 0 评论 -
#和##在宏替换中的作用
摘自:http://blog.csdn.net/kingkai620/article/details/5905606文/kingkaihttp://blog.csdn.net/haoel/archive/2009/05/18/4197010.aspx,其中的PUZZLE 4给出了一个关于宏的谜题。值得研究。[c-sharp] view plaincopy#inclu转载 2016-05-14 18:27:12 · 403 阅读 · 0 评论 -
typedef的用法总结
于typedef的用法总结 不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于总结的很好,我就不加修改的引用过来了,用途一:定义一种类型的别名,转载 2016-05-14 11:06:02 · 254 阅读 · 0 评论 -
数组无序查找
在一组无序数列中,查找特定某个数值,并返回其位置pos。//在一组无序的数组中查找给定的数字,并返回下标,2016.5.26#include #include #include #define MAX 100void input(int num[])//实参传入的数组的首地址,而不是整个数组{ int i; srand((unsigned)time(NULL));//产生随机原创 2016-05-28 15:59:47 · 2124 阅读 · 0 评论 -
c++链式队列的实现
利用C++ 单向链表实现数据结构队列,仅仅是插入的时候在链表的尾部插入,取元素都是一样的,都从头部取。//2016.5.24 c++实现链式队列。#include using namespace std;template class qnode //链式节点类{ public: T data; qnode *next; };//struct qNode//{//原创 2016-05-25 18:17:41 · 1715 阅读 · 1 评论 -
c++数组实现循环队列
像栈一样,队列(queue)也是表。然而,使用队列时插入在一端进行而删除则在另一端进行,也就是先进先出(FIFO)。队列的基本操作是EnQueue(入队),它是在表的末端(叫做队尾(rear))插入一个元素;还有DeQueue(出队),它是删除(或返回)在表的开头(叫做队头(front))的元素。 同样,队列也可以由链表或数组实现,特点分析如下:(时空矛盾)链表:不需要设定原创 2016-05-23 19:01:54 · 5895 阅读 · 2 评论 -
c++实现数组栈和链式栈
用c++实现了数组栈和链式栈,栈是一种特殊的线性表,只能一头进出,在函数递归时应用挺大的。//这是数组栈#include#includeusing namespace std;#define size 20class stack{public: stack() { number = 0; } void push(int c) { if原创 2016-05-22 17:08:18 · 540 阅读 · 0 评论 -
c++实现单链表的操作
#include using namespace std;#define NULL 0class Node //节点类{public:Node(){};//构造函数Node(int n){ num = n; next = NULL; }//构造函数Node(int n, Node *p) { num = n; next = p; }void setNum(in原创 2016-05-21 17:46:46 · 477 阅读 · 0 评论 -
c++实现顺序表的操作
c++实现顺序表的一些操作,有三个文件。#include"Sequence.h"#includeusing namespace std;int main(){SeqList *L,*L1,*L2,*L3;L = Init_SeqList();L1 = Init_SeqList();L2 = Init_SeqList();L3 = Init_SeqList()原创 2016-05-21 17:49:39 · 755 阅读 · 0 评论 -
c++实现二分法查找
二分查找也属于顺序表查找范围,二分查找也称为折半查找。二分查找(有序)的时间复杂度为O(LogN)。那么什么是二分查找呢?二分查找的基本思想是, 在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键字相等,则查找成功;若给定值小于中间记录的关键字,则在中间记录的左半区继续查找;若给定值大于中间记录的关键字,则在中间记录的右半区继续查找。不断重复上述过程,直到找到为止。从二分原创 2016-05-28 16:02:53 · 14397 阅读 · 4 评论 -
c实现哈希查找
哈希查找,也称为散列查找(本文以哈希称呼)。哈希它是由一组key/value的键值对组成的集合,它就是应用了散列技术。那么,什么是哈希查找呢?在弄清楚什么是哈希查找之前,我们要弄清楚哈希技术,哈希技术是在记录的存储位置和记录的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)。查找时,根据这个确定的对应关系找到给定值的映射f(key),若查找集合中存在这个原创 2016-05-28 16:09:20 · 3748 阅读 · 2 评论 -
c++实现冒泡排序
冒泡排序:依次比较相邻的数据,将小数据放在前,大数据放在后;即第一趟先比较第1个和第2个数,大数在后,小数在前,再比较第2个数与第3个数,大数在后,小数在前,以此类推则将最大的数"滚动"到最后一个位置;第二趟则将次大的数滚动到倒数第二个位置......第n-1(n为无序数据的个数)趟即能完成排序。对冒泡排序算法进行简单的优化,用一个标记来记录在一趟的比较过程中是否存在交换,如果不存在交换则整个数组原创 2016-05-31 17:10:47 · 47103 阅读 · 8 评论 -
c++实现选择排序
选择排序:比如在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换......第N-1趟遍历剩下的2个数据,找出其中最小的数值与第N-1个元素交换,至此选择排序完成。平均时间复杂度:O(n2)空间复杂度:O(1) (用于交换和记录索引)稳定性:不稳定 (比如序列【5, 5原创 2016-05-31 17:17:18 · 624 阅读 · 0 评论 -
c++实现插入排序
插入排序的基本思想是每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。常见的插入排序有插入排序(Insertion Sort),希尔排序(Shell Sort),二叉查找树排序(Tree Sort),图书馆排序(Library Sort),Patience排序(Patience Sort)。下面介绍前两种:(一)直接插入排序原创 2016-05-31 17:26:39 · 1682 阅读 · 0 评论 -
c++实现希尔排序
希尔排序(Shell Sort),也称为递减增量排序算法,是插入排序的一种高速而稳定的改进版本。希尔排序是基于插入排序的以下两点性质而提出改进方法的:1.插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率;2.但插入排序一般来说是低效的, 因为插入排序每次只能将数据移动一位。希尔排序的一般步骤为:1.先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成原创 2016-05-31 17:29:36 · 7983 阅读 · 4 评论 -
c++实现归并排序
归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并排序的基本思想:将待排序序列R[0...n-1]看成是n个长度为1的有序序列,将相邻的有序表成对归并,得到n/2个长度为2的有原创 2016-05-31 17:35:08 · 444 阅读 · 0 评论 -
c++实现快速排序
1、算法思想 快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod) ,分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。2、快排步骤:①分解: 在R[low..high]中任原创 2016-05-31 17:54:15 · 453 阅读 · 0 评论 -
c++实现堆排序
在程序设计相关领域,堆(Heap)的概念主要涉及到两个方面:一种数据结构,逻辑上是一颗完全二叉树,存储上是一个数组对象(二叉堆)。垃圾收集存储区,是软件系统可以编程的内存区域。本文所说的堆,指的是前者。堆排序的时间复杂度是O(nlgN),与快速排序达到相同的时间复杂度。但是在实际应用中,我们往往采用快速排序而不是堆排序。这是因为快速排序的一个好的实现,往往比堆排序具有更好的原创 2016-05-31 21:31:54 · 9472 阅读 · 0 评论 -
电脑提示MFC42.dll丢失怎么解决
mfc42d.dllDLL文件安装介绍一、如果您的系统提示"找不到mfc42d.dll"或"mfc42d.dll缺失" 或者"mfc42d.dll错误"等等,请不用担心,请把mfc42d.dll下载到本机。二、直接拷贝该文件到系统目录里: 1、Windows 95/98/Me系统,将mfc42d.dll复制到C:WindowsSystem目录下。 2、W转载 2016-06-04 17:34:05 · 16371 阅读 · 2 评论 -
初探tcp和udp
TCP HTTP UDP,都是通信协议,也就是通信时所遵守的规则,只有双方按照这个规则“说话”,对方才能理解或为之服务。TCP HTTP UDP三者的关系:TCP/IP是个协议组,可分为四个层次:网络接口层、网络层、传输层和应用层。在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。在传输层中有TCP协议与UDP协议。原创 2016-06-04 19:37:57 · 442 阅读 · 0 评论 -
gdb命令的常用总结
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net.sixxs.org/wei801004/archive/2009/06/09/4253911.aspxGDB 命令详细解释 Linux中包含有一个很有用的调试工具--gdb(GNU Debuger),它可以用来调试C和C++程序,功能不亚于Windows下的许多图形界面的调试工具。和所有常用转载 2016-06-12 21:55:10 · 503 阅读 · 0 评论