C/C++
文章平均质量分 88
aaajj
一起学习吧
展开
-
碰撞次数与π的关系问题程序求解
碰撞次数与π的关系?最近看到一个有意思的问题,如下图所示的两个理想状态下的滑块完全弹性碰撞,M的初速度为u0m的初速度为0k 为 M和m的质量比,k= 1, 碰撞次数为3 (M,m碰撞,m和墙碰撞,m,M碰撞)k= 100, 碰撞次数为31k= 10000, 碰撞次数为314相关介绍及求解视频如何从碰撞过程求圆周率π?一个奇妙的物理、代数、几何结合问题_哔哩哔哩_bilibili腾讯内容开放平台这个问题很对牛顿老先生的胃口,对我来说是很头疼。.原创 2022-01-23 21:04:02 · 2114 阅读 · 0 评论 -
【算法练习】二叉树的序列化与恢复方法
二叉树的遍历比较常见,在遍历的时候把空节点也标识出来,即可构成一个序列,根据这个序列,同样可以恢复出二叉树结构。以下程序以前序遍历的二叉树为例,可以用递归的方式去进行序列化,恢复的时候,使用一个栈结构去处理,栈中的元素加个标记,标识已识别的子节点个数,个数为0时,新入栈的节点加到left,个数为1时,新入栈的节点加到right,标识为2时,栈顶元素出栈,新节点入栈,如此循环,就可以恢复树结构了。#include <stdio.h>#include <stdlib..原创 2020-08-21 22:19:35 · 226 阅读 · 0 评论 -
在线编译试玩
github推出了在线编译功能,https://new.qq.com/omn/20200507/20200507A0B7CB00.html这个估计要电脑性能和网络良好的情况下才用得起来。搜了下,有一些网站已经提供了在线编译功能,对于单个源文件代码的编译来说,还是比较方便的在没有编译器的电脑上,对单个文件的编译,还是可以使用的,测试了下https://tool.lu/coderunner/可以进行编译,还不错#include <iostream>...原创 2020-06-14 20:49:36 · 162 阅读 · 0 评论 -
C/C++从字符串中提取出数字的方法回顾
在对格式化的数据进行处理的时候,很多时候需要在字符串中进行数据的提取,如果使用Oracle数据库,可以用里面的非常强大的sqlldr功能进行数据的提取和导入。在C/C++中,可以自定义个方法提取出数字字符串,再使用atoi, atof之类的方法转换为数字。C/C++中有sprintf方法可以把一系列数字转换为字符串,也提供了从字符串中提取出数字的方法。1. fscanfhttp...原创 2020-01-12 21:08:24 · 11640 阅读 · 1 评论 -
dumpsys中的管道与thefuck的原理猜想
dumpsys命令是Android中非常实用的命令,通过在dumpsys程序中发起向server端的binder调用来执行server端的dump方法,打印出server端的相应信息。之前的dumpsys的代码实现比较清晰,似乎是Android 6后,进行了修改,很上去复杂了不少frameworks/native/cmds/dumpsys/dumpsys.cpp185...原创 2019-11-30 20:09:57 · 241 阅读 · 0 评论 -
【Android】从SurfaceFlinger中获取各layer图片(2)
在前面的【Android】从SurfaceFlinger中获取各layer图片(1)里面,提到通过获取surfaceFlinger中的GraphicBuffer结构中的共享内存的fd来达到访问图像数据的内存地址,进而实现访问对应的图像数据,理论上是可行的,但是实际处理会有问题,最终需要通过传送GraphicBuffer对象来达到这个目的。这里记录下探索过程LINUX/andr...原创 2019-10-13 20:51:16 · 1305 阅读 · 2 评论 -
汉诺塔回顾
这几天看了下递归,想起了汉诺塔原创 2014-07-04 22:14:12 · 484 阅读 · 0 评论 -
vs2013编译的程序在其他机器上运行的环境设置
vs2013编译的程序在其他没有安装vs2013环境机器上不能运行的一种解决方法原创 2015-02-09 11:19:20 · 5684 阅读 · 2 评论 -
vs环境静态库使用出错的解决
这几天碰到了一个问题,静态库链接出错,操作步骤配置看上去没有问题,静态库lib的使用,配置C/C++ -> 常规 附加库目录 中添加 相应的头文件路径链接器 -> 输入 附加依赖项 中添加 lib名称可以在链接器 -> 输入 附加库目录 中添加lib的目录,这样在附加依赖项里不用写路径就行网上的解决方案也大都是这样,但是还是出错 1> 所有输出均为最新。原创 2015-03-19 15:45:27 · 2608 阅读 · 0 评论 -
电脑上的滑动弹幕记单词小工具实现
最近在考虑怎样记单词,想在电脑上弄个类似弹幕的工具,滑动显示单词,增加查看次数,提高记忆效果网上找了下,没有找到比较方便的工具,就准备做一个MFC界面的小工具试试看。通过代码拼凑,简单的实现了这个功能。需要实现的功能1. 界面透明的设置SetWindowLong(this->GetSafeHwnd(), GWL_EXSTYLE,GetWindowLong(t原创 2015-03-26 14:56:09 · 3522 阅读 · 1 评论 -
2012-6 笔记--动态获取属性名,构造json结构
沙盒中图片,文件如果没有,可以重新加载图片来解决2012-06-21 10:30:15.189 contacts[30222:9203] m_intv Ti,N,Vm_intv2012-06-21 10:30:15.190 contacts[30222:9203] m_imagel99999 T@"NSImageLoading",&,N,原创 2012-06-21 17:40:06 · 1710 阅读 · 2 评论 -
卸载ap导致的重启问题回顾
问题描述在L版本上安装一个apk移动到sd卡上升级系统到M版本打开应用卸载就出现了重启 系统被杀掉了自己写一个ap,也会出现这个问题 这个复现步骤很繁琐,随着sd卡的消退,出现该问题的几率很小但是,为了追求完美,我们还是要去分析查看log05-01 09:33:54.119: I/ActivityManager(11原创 2017-02-27 21:30:52 · 1069 阅读 · 0 评论 -
回顾二叉树,采用增加线索确定根节点
// testTree.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include using namespace std;typedef struct treeNode{ treeNode * left; treeNode * right; //用来记录父节点,便于查找出根节点 treeNo原创 2014-06-10 21:39:04 · 653 阅读 · 0 评论 -
unicode与UTF8
unicode是个字符集UTF8是对unicode进行编码的一种编码方法 UTF-8以字节为单位对Unicode进行编码。从Unicode到UTF-8的编码方式如下: Unicode编码(十六进制) UTF-8 字节流(二进制)000000 - 00007F0xxxxxxx000080 - 0007原创 2013-12-31 21:41:50 · 1048 阅读 · 0 评论 -
vc读写excel
整理了下网上的方法 工程设置工程 - 属性 - 常规 - MFC的使用 在静态库中使用MFC工程 - 属性 - 常规 - 字符集 使用多字节字符集 #include #include "excel9.h"using namespace std;using namespace excel;#ifdef WIN32#define uint8_t原创 2013-06-14 22:52:10 · 2022 阅读 · 2 评论 -
英语词汇量统计程序改进
程序有些bug,在检测完成所有的单词后,需要进行处理。 加上一个Add按钮来把认为重要的单词存储起来会使程序的功能更加完善这样就不仅可以统计出词汇量,还可以不断的去记单词了 这几天通过检测发现,我的词汇量大概是3700个使用这个工具可以自己去配置单词库,我使用的单词库数据是《老爸老妈浪漫史》前6季的剧本,一万多个单词原创 2013-05-27 20:56:52 · 952 阅读 · 0 评论 -
词汇量统计2--vc界面示例
用vc做了个简单的例子打开后,点击Start出现单词后,点击Known或者Unknown退出出需要点击Save进行保存下次再打开的时候,会从上次保存的地方继续执行known.txt中保存认识的单词Unknown.txt保存不认识的单词result.txt是单词数据pos.txt 中第一行是已检测的数量,第二行是认识的数量程序工程放到了我的资源中 http原创 2013-05-23 21:39:22 · 619 阅读 · 0 评论 -
词汇量统计
考虑一个手机应用功能,统计出用户的(英语)词汇量1. 录入词库2. 统计,连续弹出单词让用户识别,统计出认识的词汇总量,给用户作参考 一个简单的例子,根据txt文本中的英文内容提前出单词//5-22 get words from a textvoid getWords(){ map dic; map :: iterator pIter; fstream inf原创 2013-05-22 23:24:19 · 1152 阅读 · 0 评论 -
整理一下,这些天我都崩溃了,怎样读取word
这些天崩溃了,各种煎熬。 用vc去读word,本来就不是c的专长。最开始用的方法是ole com的一个方法,把word的内容写到txt中, void DocToTxt(BSTR bstrOpenFile, BSTR bstrSaveFile){ // ******************* Declare Some Variables ****************原创 2013-04-14 11:36:56 · 1492 阅读 · 0 评论 -
周末没有怎么出门,终于解决了word不能另存为UTF8格式txt的问题
之前使用的ole的方法,doctotxt,在通过另存为的方式处理word的时候,保存的格式是ANSI的,就会导致韩文等字符变成?,丢失数据。上网查询(用的百度),绞尽脑汁,黔驴技穷,山穷水尽,一筹莫展,崩溃了 上午的时候,实在没有办法了,考虑用c#去实现,然后在c里调用c#的程序(DLL) 今天下午继续看文档 http://msdn.microsoft.com/en-us/原创 2013-04-14 17:46:11 · 5769 阅读 · 9 评论 -
信号组合的方法进行文件关闭
前面的一篇记录中,http://blog.csdn.net/aaajj/article/details/51854015谈到了采用发信号的方式和system_server进行交互,至于传递数据,可以用读写文件,socket等方式这里讨论另外一种方式来进行尝试,采用组合信号的方式传递数据比如5,二级制为101从1到5的转化步骤为 左移1位,左移1位,加1采用几个标记信号的按序组合原创 2016-08-08 21:48:44 · 506 阅读 · 0 评论 -
AssetManager打开及关闭文件研究
AssetManager总结在Android系统中,打开一个应用的时候,AssetManager类会去加载应用对应的base.apk,这个过程如果处理有问题,就会导致内存泄露,现在来研究下AssetManager加载和关闭文件的处理方式。相关文件./frameworks/base/libs/androidfw/AssetManager.cppvi ./fra原创 2016-09-22 20:43:52 · 9002 阅读 · 0 评论 -
滑块拼图(加强版的8数码)的规划处理
最近回顾了下BFS,DFS,以及八数码问题周末的时候在家突然看到了角落里的滑块拼图,放了很久了。玩滑块拼图,没有找到什么规律的话太难下手了。这时,考虑用程序来处理下。3*4 + 1的拼图,是8数码的升级版,8数码问题的资料还比较多,是一个非常经典的问题https://blog.csdn.net/u012283461/article/detail...原创 2019-09-02 20:31:39 · 1405 阅读 · 0 评论 -
通过文件描述符(fd)去访问Android共享内存
关于Android共享内存,可以查看下这个资料https://blog.csdn.net/goodlixueyong/article/details/53151959Android中分别提供了C++和Java的访问共享内存的接口Java层使用MemoryFile通过fd去标识共享内存android_os_SharedMemory.cpp里有具体实现Nati...原创 2019-03-26 21:04:40 · 1897 阅读 · 1 评论 -
property_get的编译报错问题
在使用property_get的时候,竟然发现有个坑, char value[64] = {0};//PROPERTY_VALUE_MAX property_get("debug.slamlog", value, "0");编译的时候会出错,frameworks/native/cmds/tam/tamService.cpp:253:6: err...原创 2019-03-26 20:54:29 · 3610 阅读 · 0 评论 -
c++层使用和编译aidl文件例子
c++层使用和编译aidl文件可以参考av/camera里的例子 这里给出了一个简化版的工程例子测试的工程路径为源码路径下的frameworks/native/cmds/bitTubeaidl文件ITest.aidl package android.hardware; interface ITest{ int getData();} ...原创 2019-02-25 21:03:56 · 8034 阅读 · 0 评论 -
[Android]关于aidl
aidl的基本数据格式,可以参考源码中的例子system/tools/aidl/tests/android/aidl/tests/ITestService.aidl52 SimpleParcelable RepeatSimpleParcelable(in SimpleParcelable input,53 ...原创 2019-01-31 16:26:30 · 361 阅读 · 0 评论 -
规范编程之变量的初始化
一个进程crash的问题,ExceptionClass: Native (NE)Exception Type: SIGSEGVCurrentExecuting Process: pid: 386, tid: 399/system/bin/TyserviceBacktrace:#00 pc 0000000000092894 /system/lib64/libc.so (ifree+88)#01 pc...原创 2018-05-14 18:12:53 · 520 阅读 · 0 评论 -
[Android]ServiceManager的客户端proxy本质是BpBinder(0)
在客户端,我们通常都是使用ServiceManager的getService或者checkService方法去获取相应服务的proxy,比如dumpsys.cpp中有 sp<IServiceManager> sm =defaultServiceManager();sp<IBinder>service = sm->checkService(String16("po...原创 2018-05-09 10:22:25 · 785 阅读 · 0 评论 -
【Android】直接构造BpBinder(handle)进行binder通信猜想
猜想在native层进行Binder通信时,客户端使用的是BpBinder对象。如 sp sm = defaultServiceManager();sp service = sm->getService(String16("power")); defaultServiceManager()的返回值是对BpBinder(0)的包装,get原创 2017-09-19 21:34:29 · 1207 阅读 · 0 评论 -
【Android】Parcel简介
1. Parcel的原理是把数据按照类型和顺序写在内存中,取数据的时候,按照同样的顺序即可2.存储数据的时候,以4字节为基本单位进行内存对齐3.采用memcpy以及 *reinterpret_cast(mData+mDataPos) = val; 的方式写内存数据4.采用realloc的方式扩展内存大小5.和binder纠缠在一起了,传送文件描述符的时候,对数据动了手脚,根据原原创 2017-06-10 18:04:48 · 385 阅读 · 0 评论 -
LL(1)语法分析程序
LL(1)语法分析程序的设计思路还是很清晰的,按照教材上的算法公式去实现即可。找出了以前在学校的时候写的一个实现,在VC6上编译的。当时写的比较稚嫩,程序也并不完美,有机会再完善下。使用例子输入产生式的个数:5请输入各产生式:说明:若有空产生式A->ε,则ε不必打出来;直接输入A->第1个产生式:E->iF第2个产生式:F->+E第3个产生式:F->第4原创 2017-02-21 22:12:54 · 3732 阅读 · 0 评论 -
学习yacc与lex--计算器实现练习
cal.l%{ #include#include "y.tab.h"extern int yylval;%}numbers ([0-9])+plus "+"minus "-"times "*"divide "/"lp "("rp ")"delim [ \r]bs {delim}*原创 2016-12-14 22:34:04 · 1880 阅读 · 3 评论 -
execv注意事项
execv的处理中有需要特别注意的东西,下面是一个可以正常执行的例子#include #include原创 2016-12-01 21:21:24 · 1921 阅读 · 0 评论 -
AssetManager的释放跟踪
AssetManager的释放跟踪 AssetManager的创建很容易找到,就是new AssetManager的地方,但是在java里怎么调到的finalize()方法,进而调用到C++里的AssetManager的析构方法的呢? 屏蔽掉以下代码 boolean doPostDeleteLI(boolean delete) {原创 2016-10-28 21:46:31 · 1780 阅读 · 1 评论 -
C调用c#的托管字符串传送UTF8字符集方法
//将非托管的ANSI字符串转换成托管字符串 String^ UnmanagedStringA2ManagedString(char *pIn){String^ strOut =System::Runtime::InteropServices::Marshal::PtrToStringAnsi(static_cast(pIn));return strOut;}这种方式传原创 2013-04-02 23:27:12 · 2280 阅读 · 0 评论 -
Linux管道执行ftp
暂时没有找到ftp调用的函数,看到了2010年11月15日的笔记。通过管道的方式调用ftp命令管道的使用 ftp #include int ftpFunction(const char * ip, const char * user, const char * pass, const char * path, const char * filename) {原创 2013-02-20 20:11:21 · 2465 阅读 · 0 评论 -
一些程序优化技术
1.缓存,如写文件的时候2.封装,便于开发和维护3.使用委托delegate,功能结构清晰4.减少构造,如string中使用 += 来替换 a = a + b + c ;循环中公用变量5.使用索引方法,如map原创 2013-02-03 21:27:58 · 357 阅读 · 0 评论 -
5月笔记
NSArray * varr = [selfsubviews];for (int i =0; i count]; i++){NSLog(@"*********** i = %d, tag = %d class = %@", i, [[varr objectAtIndex:i]tag], [[varrobjectAtIndex:i] class]);}原创 2012-05-31 09:08:57 · 392 阅读 · 0 评论 -
Iphone界面传值的一些总结
在界面中,经常会碰到这样的问题:怎样把一个界面中的变量值传给另外的界面(类对象) 非实时的处理方法可以使用全局变量,读写文件 来进行处理实现 实时的方式可以使用发消息 而较为正常的方式是直接使用指针进行操作A * a;C * c;a.m_p = c;c.m_p = a;这样 a c 就可以相互访问。 还有一种方式,把要传递的变量作为函数传入原创 2012-05-10 00:20:55 · 610 阅读 · 0 评论