AKever

导航

文章分类 -  C++

上一页 1 2 3

a powerful language and my love
算法 -- (2)冒泡排序(交换)
摘要:冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端,... 阅读全文

posted @ 2014-02-18 11:27 AKever 阅读(483) 评论(0) 推荐(0)

算法 -- (2)简单选择排序(选择)
摘要:数据结构 -- (2)简单选择排序(选择)设所排序序列的记录个数为n。i取1,2,…,n-1,从所有n-i+1个记录(Ri,Ri+1,…,Rn)中找出排序码最小的记录,与第i个记录交换。执行n-1趟 后就完成了记录序列的排序。最坏情况下,即待排序记录初始状态是按逆序排列的,则需要移动记录的次数最多为... 阅读全文

posted @ 2014-02-18 10:43 AKever 阅读(360) 评论(0) 推荐(0)

算法 -- (1)快速排序(交换)
摘要:数据结构 -- (1)快速排序(交换)快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。百度百科演示图--- cpp 1 !!!----int QuickSort::partition(i... 阅读全文

posted @ 2014-02-17 16:53 AKever 阅读(833) 评论(0) 推荐(0)

C++(1) 细节-STL中map学习小结
摘要:细节-STL中map学习小结map常用的方法主要有:insert,erease,size,count,begin,end,find,clear,emptyinsert方法: 在map中插入一个元素,map中记录的元素通常为键值对,所以,在存储时会把,键和值封装成pair然后进行插入,例如:phone.insert(pair(name,number));其中name和number为string类型的变量。当然也可以简单的写成phone[name]=number;此处phone即为map类型的变量。因为map在实现过程中对[]进行了重载。 第一种方式若插入的元素的键值已经存在于map中,那么... 阅读全文

posted @ 2014-02-08 15:03 AKever 阅读(477) 评论(0) 推荐(0)

C++(1) new && delete、new[] && delete[]
摘要:new && delete、new[] && delete[]C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[]分配的一组对象的内存空间的时候用 delete[]。 关于 new[] 和delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2) 为自定义类型分配和回收空间。#include ;using namespace std; class T {public: T() { cout << "constructor" << endl; } ~T 阅读全文

posted @ 2014-02-08 10:32 AKever 阅读(354) 评论(0) 推荐(0)

Cocos2dx(1) jsoncpp 解析json数据
摘要:jsoncpp 解析json数据附:#include "CocoStudio/Json/lib_json/json_lib.h"1.添加jsoncpp库的包含目录(引入头文件.h)右击项目->属性->(C\C++常规)->附加包含目录(有编辑框下拉"编辑")->##\jsoncpp\include\json;2.添加jsoncpp库的库目录右击项目->属性->(连接器)常规->附加包含目录(有编辑框下拉"编辑")->##\jsoncpp\lib;3.把库名称添加到附加依赖项右击项目-&g 阅读全文

posted @ 2014-02-07 21:46 AKever 阅读(1132) 评论(0) 推荐(0)

C++(2) Json -- JsonCpp 第三方库的引用
摘要:JsonCpp 第三方库的引用,引用json数据一 编译链接1 在相应官网下载jsoncpp2 解压得到jsoncpp-src-0.5.0文件3 打开jsoncpp-src-0.5.0 -> makefiles -> vs71 -> jsoncpp.sln4 转换项目为VS2010格式5 选择debug模式6 在“解决方案资源管理器”中右击 lib_json 选择->仅用于项目 -> 仅生成lib_json7 再次右击 lib_json 选择->仅用于项目 -> 仅链接lib_json8 选择release模式9 重复操作 6 和 7 10 生成的.l 阅读全文

posted @ 2014-01-23 13:01 AKever 阅读(2290) 评论(1) 推荐(1)

C++(1) 数据编码格式转换(中文乱码)UTF8ToGBK
摘要:数据编码格式转换(中文乱码)UTF8ToGBK(适用于VC++,引用了cstring.h)工具类UTF8ToGBK.h/cppUTF8ToGBK.h#pragma once#include #include //string是c++ 的头文件,其内包含了一个string类,string s1就是建立一个string类的对象 #include //cstring.h 是对应于旧C 头文件的std 版本#include #include #define LOGNEWLINE printf("\n")using namespace std;class UTF8ToGBK{publ 阅读全文

posted @ 2014-01-23 08:59 AKever 阅读(2775) 评论(0) 推荐(0)

C++(1) 智能内存管理计数-智能指针
摘要:一、智能内存管理计数-智能指针(来自Cocos2dx的抄录)目前,主要有两种实现智能管理内存的技术,一是引用计数,一是垃圾回收。引用计数:它是一种很有效的机制,通过给每个对象维护一个计数引用计数器,记录该对象当前被引用的次数。当对象增加一次引用时,计数器+1;而对象失去一个引用时,计数器-1;当引用计数为0时,标志着该对象的生命周期结束,自动触发对象的回收释放。引用计数的重要规则是每个程序片段必须负责任地维护引用计数,在需要维持对象生存的程序段的开始和结束分别增加和减少一次引用计数,这样我们就可以实现十分灵活的智能内存管理。实际上,这与 new 和 delete 的配对使用十分类似,但是很巧妙 阅读全文

posted @ 2014-01-20 14:17 AKever 阅读(721) 评论(0) 推荐(0)

C++(1) C_C++变量命名规则
摘要:C_C++变量命名规则变量命名规则是为了增强代码的可读性和容易维护性。以下为C++必须遵守的变量命名规则:变量名只能是字母(A-Z,a-z)和数字(0-9)或者下划线(_)组成。第一个字母必须是字母或者下划线开头。不能使用C++关键字来命名变量,以免冲突。变量名区分大小写。变量命名规则:一.用最短字符表示最准确的意义。二.使用变量前缀。1.整型前缀 int nId; //int前缀:n short sId; //short前缀:s unsigned int unId // unsigned int 前缀:... 阅读全文

posted @ 2014-01-16 17:56 AKever 阅读(6155) 评论(0) 推荐(0)

C++(1) virtual 函数
摘要:Virtual是C++ OO机制中多太很重要的一个关键。以个人理解,virtual 声明基类函数后,基类函数指针会搜寻并指向函数指针,从而达到子类函数覆盖基类函数的目的。test文件Father.h/cppChild.h/cppmain.cpp贴贴贴:Father.h#ifndef __FATHER_H__#define __FATHER_H__#include using namespace std;class Father{public: Father(void); ~Father(void); void take(); virtual void eat();};#... 阅读全文

posted @ 2014-01-15 21:04 AKever 阅读(447) 评论(0) 推荐(0)

C++(1) Base List2
摘要:C++基础系列1.继承:我看到一本>,里面讲子类可以继承父类所有的成员变量和函数,虽然子类能继承父类的私有成员变量,但是不能直接访问父类的私有成员变量,但是可以通过父类的public类型的成员函数来访问父类的私有成员变量。类成员命名(量)常量:k; 成员变量:m; 指针变量:pg_表示全局,l_表示局部变量 阅读全文

posted @ 2014-01-06 17:28 AKever 阅读(235) 评论(0) 推荐(0)

C++(1) 面试题(1)
摘要:面试题(引用)1.什么是“引用”?申明和使用“引用”要注意哪些问题?答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。不能建立数组的引用。2.将“引用”作为函数参数有哪些特点?(1)传递引用给函数与传递指针的效果是一样的。这时,被调函数的形参就成为原来主调 阅读全文

posted @ 2014-01-06 16:19 AKever 阅读(220) 评论(0) 推荐(0)

C++(1) Base List1
摘要:C++ 基础知识系列1.式子:x = x&(x-1) ,这本书第1章就有介绍,这种算法是把一个二进制数最右边的一个1变成0。----------------------------------------------C++基点1.引用返回值:函数返回值时,要生成一个值的副本。而用引用返回值时,不生成... 阅读全文

posted @ 2014-01-06 16:12 AKever 阅读(377) 评论(0) 推荐(0)

C++(1)-在Visual Studio 2010中使用Visual Leak Detector
摘要:Visual Leak Detector是过去(Visual Studio 2008的时代)我们常用的C/C++内存泄露检查工具。在Visual Studio 2010中依然可以使用该工具,但有两点需注意:版本问题设置变化版本问题:在codeproject.com上面提供的最新版本依然是1.9d,但... 阅读全文

posted @ 2014-01-04 13:08 AKever 阅读(519) 评论(0) 推荐(0)

C++(1)-一个进程在内存中的布局
摘要:转自:http://patmusing.blog.163.com/blog/static/135834960201001512358686/对于一个完整的程序,在内存中分布情况如下图:值得一提的是:在C#中struct存放在栈区,class存放在堆区,所以一般struct要比class要快的。堆和栈的比较表(仅针对C++):栈(Stack)堆(Heap)申请方式由OS自动分配。例如在函数声明一个局部变量int b; OS自动在栈中为b开辟空间需要程序员自己申请,并指明大小,在c中malloc函数,如p1 = (char*)malloc(10);在C++中用new运算符如p2 = new cha 阅读全文

posted @ 2013-12-19 15:22 AKever 阅读(1622) 评论(0) 推荐(1)

上一页 1 2 3