c++
杨名天吓
这个作者很懒,什么都没留下…
展开
-
C++类库介绍
C++类库介绍 再次体现了C++保持核心语言的效率同时大力发展应用库的发展趋势!!在C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库的数量非常庞大,而且限于笔者水平,其中很多并不转载 2012-08-27 22:42:09 · 737 阅读 · 0 评论 -
STL vector list deque区别与实现
1 vector 向量 相当于一个数组 在内存中分配一块连续的内存空间进行存储。支持不指定vector大小的存储。STL内部实现时,首先分配一个非常大的内存空间预备进行存储,即capacituy()函数返回的大小,当超过此分配的空间时再整体重新放分配一块内存存储,这给人以vector可以不指定vector即一个连续内存的大小的感觉。通常此默认的内存分配能完成大部分情况下的存转载 2013-10-26 16:10:54 · 699 阅读 · 0 评论 -
C++ Base64加密解密
原文地址:http://www.adp-gmbh.ch/cpp/common/base64.htmlThe cpp filebase64.cpp/* base64.cpp and base64.h Copyright (C) 2004-2008 René Nyffenegger This source code is provided 'as-i转载 2013-09-26 23:53:56 · 2397 阅读 · 0 评论 -
C++ 类的静态成员详细讲解
在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即类名>::静态成员名>。 在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文先通过几个例子来转载 2013-09-11 16:23:59 · 565 阅读 · 0 评论 -
c++字符串简单加密
#include "stdafx.h"#include#includeusing namespace std;void Makecode(char *pstr,int *pkey);void Cutecode(char *pstr,int *pkey);int _tmain(int argc, _TCHAR* argv[]){ int key[]={1转载 2013-09-02 16:39:15 · 8785 阅读 · 0 评论 -
C++ UTF8编码转换 CChineseCode
一 预备知识 1,字符:字符是抽象的最小文本单位。它没有固定的形状(可能是一个字形),而且没有值。“A”是一个字符,“€”(德国、法国和许多其他欧洲国家通用货币的标志)也是一个字符。“中”“国”这是两个汉字字符。字符仅仅代表一个符号,没有任何实际值的意义。 2,字符集:字符集是字符的集合。例如,汉字字符是中国人最先发明的字符,在中文、日文、韩文和越南文的书写中使用。这也说明了字符和字符集之转载 2013-07-24 21:39:26 · 730 阅读 · 0 评论 -
C++的中英文字符串表示(string,wstring)
在C++中字符串类的string的模板原型是basic_string template class _Elem, class traits = char_traits_Elem>, class _Ax = allocator_Elem>>class basic_string{}; 第一个参数_Elem表示类型。第二个参数traits的缺省值使用char转载 2013-07-24 21:41:03 · 833 阅读 · 0 评论 -
VS中的路径宏 vc++中OutDir、ProjectDir、SolutionDir各种路径
说明$(RemoteMachine)设置为“调试”属性页上“远程计算机”属性的值。有关更多信息,请参见更改用于 C/C++ 调试配置的项目设置。$(References)以分号分隔的引用列表被添加到项目中。$(ConfigurationName)当前项目配置的名称(例如“Debug”)。$(PlatformName)当前项目平台的名称转载 2013-07-05 12:41:48 · 506 阅读 · 0 评论 -
C++ 引用详解
c++比起c来除了多了类类型外还多出一种类型:引用。这个东西变量不象变量,指针不象指针,我以前对它不太懂,看程序时碰到引用都稀里糊涂蒙过去。最近把引用好好地揣摩了一番,小有收获,特公之于社区,让初学者们共享。 引用指的是对一个对象的引用。那么什么是对象?在c++中狭义的对象指的是用类,结构,联合等复杂数据类型来声明的变量,如 MyClass myclass,CDi转载 2013-07-20 10:59:17 · 503 阅读 · 0 评论 -
C++类间相互引用
两个类相互包含引用的问题 不管是下文中提到的例子,还是任何情况,使得class A的头文件需要include class B的头文件,class B的也要引用A的头文件,这种状况下,貌似会出现有一个类未定义的问题从而无法通过编译。 解决办法是: A或者B任选一个采用头文件(A.h)引用另一头文件(B.h)的方式不变,而另外一方的头文件(B)中则在定义该类之前写一句class A;然转载 2013-10-26 22:55:59 · 757 阅读 · 0 评论 -
STL中用ERASE()方法遍历删除元素
STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector 、deque);另一类是以不连续的节点形式存储的容器(如:list、set、map)。在使用erase方法来删除元素时,需要注意一些问题。 在使用 list、set 或 map遍历删除某些元素时可以这样使用:正确使用方法1 std::list List; std:转载 2013-10-30 14:38:25 · 559 阅读 · 0 评论 -
C++ 11 Lambda表达式
C++ 11中的La mbda 表达式用于定义并创建匿名的函数对象,以简化编程工作。La mbda 的语法形式如下:[函数对象参数] (操作符重载函数参数) muta ble 或e xce ptio n声明 ->返回值类型 {函数体}可以看到,La mbda 主要分为五个部分:[函数对象参数]、(操作符重载函数参数)、muta ble 或e xce ptio n声明、->返回值类型、{转载 2014-09-08 10:55:25 · 532 阅读 · 0 评论 -
C++ GUI编程---使用SmartWin++
SmartWin++ 是 100% 标准 C++ 编写的轻量级 GUI 库 (http://smartwin.sourceforge.net) ,现在最新版是 beta 2.0 ,它的最初的目标是替代 MFC 和 WTL 。现在它可以通过 WinLib 在 linux 下使用,据作者介绍,在以后的版本里会支持 linux 下的开发。 它是使用 STL 和 Boost 编写,不过使用者不必自转载 2014-07-29 19:55:50 · 3740 阅读 · 0 评论 -
C++编写Config类读取配置文件
老外写的一段代码,在Server中编写这个类读取配置文件比较实用 C++代码 //Config.h #pragma once #include #include #include #include #include /* * \brief Generic configuration Cla转载 2014-05-04 17:14:55 · 979 阅读 · 0 评论 -
C++中extern “C”含义深层探索
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显转载 2014-03-17 09:23:46 · 507 阅读 · 0 评论 -
C++获取目录下的文件列表
#include #include #include #include #include #include #include using namespace std;void getFiles( string, vector& );int main() ...{ vector file转载 2014-02-27 19:42:13 · 1119 阅读 · 0 评论 -
C++界面库
刚开始用C++做界面的时候,根本不知道怎么用简陋的MFC控件做出比较美观的界面,后来就开始逐渐接触到BCG Xtreme ToolkitPro v15.0.1,Skin++,等界面库,以及一些网友自己写的界面库,开始对于C++软件界面美化有了一点点的心得。不敢藏私,希望和一些新手朋友们分享交流。 一. 开源C++界面库 1.RingSdk转载 2013-12-15 20:39:56 · 1590 阅读 · 0 评论 -
关于typedef的用法总结
不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于总结的很好,我就不加修改的引用过来了,以下是引用的内容(红色部分是我自己写的内容)。用途一:定义一种类型的别转载 2013-12-12 17:12:12 · 537 阅读 · 0 评论 -
#define总结 (网上资料汇集)
1. 定义简单的常数:定义常量,便于修改(切不可在后面加上分号!) #define N 1000 等效于 const int N = 1000; 但略有不同,define只是简单替换,而不是作为一个量来使用.2. 定义简单的函数:注意多使用括号define可以像函数那样接受一些参数,如下:#define max(x,y) (x)>(y)?(x):(y转载 2013-12-12 17:14:54 · 668 阅读 · 0 评论 -
C++ 之高效使用STL(查找算法的选择)
你要寻找什么,而且你有一个容器或者你有一个由迭代器划分出来的区间——你要找的东西就在里面。你要怎么完成搜索呢?你箭袋中的箭有这些:count、count_if、find、find_if、binary_search、lower_bound、upper_bound和equal_range。面对着它们,你要怎么做出选择?简单。你寻找的是能又快又简单的东西。越快越简单的越好。暂时,我假设你转载 2013-07-18 09:08:58 · 1158 阅读 · 0 评论 -
C++ 容器:顺序性容器、关联式容器和容器适配器
什么是容器首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。很简单,容器就是保存其它对象的对象,当然这是一个朴素的理解,这种“对象”还包含了一系列处理“其它对象”的方法,因为这些方法在程序的设计上会经常被用到,所以容器也体现了一个好处,就是“容器类是一种对特定代码重用问题的良好的解决方案转载 2013-07-17 22:12:32 · 622 阅读 · 0 评论 -
c++ utf8与std::string字符编码转换
1. utf8转std::string转换过程:先将utf8转双字节Unicode编码,再通过WideCharToMultiByte将宽字符转换为多字节。//----------------------------------------------------------------------- std::string UTF8_To_string(const std::stri转载 2013-07-10 23:39:27 · 4139 阅读 · 0 评论 -
vs2010+Visual Assist X 常用快捷键
以下是vs2010的常用快捷键Shift+Alt+Enter: 切换全屏编辑 CTRL + K, CTRL + C注释选择的代码 CTRL + K, CTRL + U取消对选择代码的注释 F5运行调试 CTRL + F5运行不调试 CTRL + J列出成员 F9: 切换断点 Ctrl+F9: 启用/停止断点 Ctr原创 2013-07-01 13:23:55 · 1034 阅读 · 0 评论 -
解决eclipse ADT编译NDK报NDK和minSdkVersion不匹配的问题
在使用Eclipse 直接编译NDK,有时候会报类似以下错误,这是因为NDK指定的版本与minSdkVersion不一致的问题,这本身只是一个警告,但是在eclipse下就会编译报错。 Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 解决问转载 2013-07-07 23:42:49 · 955 阅读 · 0 评论 -
访问JNI函数:JNIEnv自变量
利用JNI函数,程序员可从一个固有方法的内部与JVM打交道。正如大家在前面的例子中看到的那样,每个JNI固有方法都会接收一个特殊的自变量作为自己的第一个参数:JNIEnv自变量——它是指向类型为JNIEnv_的一个特殊JNI数据结构的指针。JNI数据结构的一个元素是指向由JVM生成的一个数组的指针;该数组的每个元素都是指向一个JNI函数的指针。可从固有方法的内部发出对JNI函数的调用,做法是撤消对转载 2013-07-07 23:21:30 · 2092 阅读 · 0 评论 -
使用非JAVA代码
JAVA语言及其标准API(应用程序编程接口)应付应用程序的编写已绰绰有余。但在某些情况下,还是必须使用非JAVA编码。例如,我们有时要访问操作系统的专用特性,与特殊的硬件设备打交道,重复使用现有的非Java接口,或者要使用“对时间敏感”的代码段,等等。与非Java代码的沟通要求获得编译器和“虚拟机”的专门支持,并需附加的工具将Java代码映射成非Java代码(也有一个简单方法:在第15章的“一个转载 2013-07-07 23:20:48 · 691 阅读 · 0 评论 -
利用JNI技术在Android中调用、调试C++代码
在Android中调用C++其实就是在Java中调用C++代码,只是在windows下编译生成DLL,在Android中会生成Linux系统下的.so文件(好吧,其实我基本没用过Linux)。 没写过JNI的可以看看我之前的博客(Windows下利用Visual Studio开发的过程):http://cherishlc.iteye.com/admin/blogs/1328136 以及转载 2013-07-07 23:00:42 · 1107 阅读 · 0 评论 -
Cocos2d-x + Android + Eclipse + Windows 8
琢磨着弄弄Cocos2d-x,配置下 Cocos2d-x + Android + Eclipse + Windows 8 的开发环境,过程比较心酸曲折,做个记录以备后用 我的基础环境不做详述,不清楚查阅[Android开发环境搭建]的文档即可- Windows8- Eclipse Helios 3.6.2- JDK1.6- Android S转载 2013-07-07 15:03:20 · 640 阅读 · 0 评论 -
android-ndk-r7b编译环境Cygwin工具搭建及配置
开发android ndk 的时候需要一个编译工具编译c程序,ndk需要linux下编译,所以win环境下提供Cygwin模拟linux编译Candroid-ndk 较低版本的这个工具的配置网上很多,我这儿记述点android-ndk-r7b下配置Cygwin的步骤:1.到Cygwin的官方网站下载Cygwin的安装程序,地址是: http://www.cygwin.com/set转载 2013-07-07 15:01:40 · 931 阅读 · 0 评论 -
最好用(个人认为)的C++单例模式的实现
#include using namespace std;class Singleton { private: int test; static Singleton *instance; Singleton() { cout ~Singleton() { cout public转载 2013-07-14 10:09:54 · 606 阅读 · 0 评论 -
C++的中英文字符串表示(string,wstring)
C++的中英文字符串表示(string,wstring) 在C++中字符串类的string的模板原型是basic_string template class _Elem, class traits = char_traits_Elem>, class _Ax = allocator_Elem>>class basic_string{}; 第一转载 2013-07-16 11:36:04 · 1087 阅读 · 0 评论 -
善用STL中的find方法,慎用vector的erase
用C++的stl库,相信大家都有用vector的经历,毕竟vector支持直接下标方式取数据的确方便很多。但是vector默认是不提供find方法的,所以我们在查找的时候,通常这样写代码:vectorint> vec;for(unsigned int i = 0;ivec.size();++i){ if(vec[i]==xxx) { b转载 2013-07-17 22:02:59 · 1001 阅读 · 0 评论 -
c++继承经典例子
c++继承经典例子#include class Base{private: int b_number;public: Base( ){} Base(int i) : b_number (i) { } int get_number( ) {return b_number;} void p转载 2013-07-17 13:47:41 · 885 阅读 · 0 评论 -
C++ 排序函数 sort(),qsort()的用法
想起来自己天天排序排序,冒泡啊,二分查找啊,结果在STL中就自带了排序函数sort,qsort,总算把自己解脱了~所以自己总结了一下,首先看sort函数见下表: 函数名 功能描述 sort 对给定区间所有元素进行排序 stable_sort 对给定区间所有元素进行稳定排序 partial_sort 对给定区间所有元素部分排序 partial_sort_转载 2013-07-17 08:32:32 · 652 阅读 · 0 评论 -
C++中实现数组的随机排序
// random_shuffle example#include #include #include #include #include #include using namespace std;// random generator function:ptrdiff_t myrandom (ptrdiff_t i) { return rand()%i转载 2013-07-17 08:38:11 · 7072 阅读 · 0 评论 -
c语言中的rand()函数和srand()函数产生随机的整数
在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了srand()函数,它的原形是void srand( i转载 2013-07-16 22:39:39 · 2471 阅读 · 0 评论 -
C++随机生成汉字
#include #include using namespace std;#include #include int main(){srand((unsigned)time(NULL));int iRange1 = 0xf7 - 0xb0;int iRange2 = 0xfe - 0xa1;for (int i=0;i{char iCo转载 2013-07-16 22:26:45 · 4457 阅读 · 0 评论 -
C++ STRING 和WSTRING 之间的互相转换函数
#include string>std::string ws2s(const std::wstring& ws){ std::string curLocale = setlocale(LC_ALL, NULL); // curLocale = "C"; setlocale(LC_ALL, "chs"); const wchar_t* _Sourc转载 2013-07-16 11:32:15 · 604 阅读 · 0 评论 -
STL中map用法详解
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有转载 2013-07-16 13:42:25 · 421 阅读 · 0 评论 -
C/C++中extern关键字详解
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数转载 2014-11-29 09:05:58 · 547 阅读 · 0 评论