随笔分类 -  C/C++学习

C++ 操作符重载
摘要:1.什么是操作符重载 可以使用分词将操作符重载理解为:操作符+重载。 C++中的操作符很多,如+,-,*,\等等。 C++中的重载也是C++中面向对象多态的体现。 简单说操作符重载: C++中有:int a=2+3; 那么a=5 操作符重载可以实现对自定义类型的操作: 1 #include 2 using namespace std; 3 4 class Point{ 5 public: 6 int x; 7 int y; 8 Point(int _x,int _y):x(_x),y(_y){ 9 }10 11 Point op... 阅读全文

posted @ 2014-03-13 22:36 旭东的博客 阅读(4439) 评论(0) 推荐(1)

C++构造函数、析构函数、虚析构函数
摘要:1.构造函数 C++中的构造函数是用于初始化类的各种变量以及分配资源等。主要的注意事项是: (1)在继承关系中先初始化父类对象后初始化子类对象。 (2)在一个类中按照变量的声明顺序,对类中的变量进行初始化。 (3)初始化过程中,可以使用已经被初始化的对象去初始化其他的对象。2.析构函数 析构函数与构造函数作用相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统自动执行析构函数。 析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。 调用顺序与构造函数正好相反,先析构子类(释放子类资源),在析构... 阅读全文

posted @ 2014-03-12 21:21 旭东的博客 阅读(3222) 评论(1) 推荐(0)

正则表达式贪婪与非贪婪模式
摘要:之前做程序的时候看到过正则表达式的贪婪与非贪婪模式,今天用的时候就想不起来了,现在这里总结一下,以备自己以后用到注意。 1.什么是正则表达式的贪婪与非贪婪匹配 如:String str="abcaxc"; Patter p="ab.*c"; 贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪 阅读全文

posted @ 2014-03-08 11:28 旭东的博客 阅读(160369) 评论(7) 推荐(4)

C++ 在继承中虚函数、纯虚函数、普通函数,三者的区别
摘要:1.虚函数(impure virtual) C++的虚函数主要作用是“运行时多态”,父类中提供虚函数的实现,为子类提供默认的函数实现。 子类可以重写父类的虚函数实现子类的特殊化。 如下就是一个父类中的虚函数:class A{public: virtual void out2(string s) { coutusing namespace std;class A{public: virtual void out1()=0; ///由子类实现 virtual ~A(){}; virtual void out2() ///默认实现 { ... 阅读全文

posted @ 2014-02-27 09:18 旭东的博客 阅读(90723) 评论(6) 推荐(12)

C/C++ 获取目录下的文件列表信息
摘要:在C/C++编程时,需要获取目录下面的文件列表信息。1.数据结构struct dirent{ long d_ino; /* inode number 索引节点号 */ off_t d_off; /* offset to this dirent 在目录文件中的偏移 */ unsigned short d_reclen; /* length of this d_name 文件名长 */ unsigned char d_type; /* the type of d_name 文件类型 */ char d_name [NAME_MAX+1]; /* file... 阅读全文

posted @ 2014-02-25 13:56 旭东的博客 阅读(20898) 评论(0) 推荐(0)

C语言 strftime 格式化显示日期时间 时间戳
摘要:C/C++程序中需要程序显示当前时间,可以使用标准函数strftime。 函数原型:size_t strftime (char* ptr, size_t maxsize, const char* format,const struct tm* timeptr ); 代码示例: 代码输出: 格式化时间 阅读全文

posted @ 2014-02-14 23:54 旭东的博客 阅读(28867) 评论(0) 推荐(0)

C++ vector 删除符合条件的元素
摘要:C++ vector中实际删除元素使用的是容器vecrot中std::vector::erase()方法。C++ 中std::remove()并不删除元素,因为容器的size()没有变化,只是元素的替换。1.std::vector::erase() 函数原型:iterator erase (iterator position); //删除指定元素 iterator erase (iterator first, iterator last); //删除指定范围内的元素 返回值:指向删除元素(或范围)的下一个元素。(An iterator pointing to the new... 阅读全文

posted @ 2014-01-16 15:40 旭东的博客 阅读(163970) 评论(4) 推荐(2)

C语言条件编译
摘要:使用与平台有关的C语言函数,可能会使得程序不具有可移植性。比如Socket编程、多线程编程等是与平台有关的。若想将程序做成平台无关的就需要用到与平台相关的条件编译。下面转自:http://blog.csdn.net/immcss/article/details/3881827编译器GCC#ifdef__GNUC__#if __GNUC__ >= 3 // GCC3.0以上Visual C++#ifdef_MSC_VER(非VC编译器很多地方也有定义)#if _MSC_VER >=1000 // VC++4.0以上#if _MSC_VER >=1100 // VC++5.0以上 阅读全文

posted @ 2014-01-15 21:24 旭东的博客 阅读(1363) 评论(0) 推荐(0)

Win Socket编程原理及简单实例
摘要:[转]http://www.cnblogs.com/tornadomeet/archive/2012/04/11/2442140.html使用Linux Socket做了小型的分布式,如Linux C Socket编程原理及简单实例。为了更好地分布也得看看Win Socket。Win Socket TCP原理图:Win Socket UDP原理图:简单TCP连接实例:服务器端: 1 #include 2 #include 3 #pragma comment(lib,"ws2_32.lib") 4 int main(int argc,char **argv) 5 { 6 // 阅读全文

posted @ 2014-01-07 10:19 旭东的博客 阅读(1423) 评论(0) 推荐(0)

C/C++ 语言获取文件大小
摘要:在C语言中测试文件的大小,主要使用二个标准函数。1.fseek 函数原型:int fseek ( FILE * stream, long int offset, int origin ); 参数说明:stream,文件流指针;offest,偏移量;orgin,原(始位置。其中orgin的可选值有SEEK_SET(文件开始)、SEEK_CUR(文件指针当前位置)、SEEK_END(文件结尾)。 函数说明:对于二进制模式打开的流,新的流位置是origin + offset。2.ftell 函数原型:long int ftell ( FILE * stream ); 函数说明:返回流的位置... 阅读全文

posted @ 2014-01-06 22:59 旭东的博客 阅读(44345) 评论(1) 推荐(1)

C语言数字与字符串转换 atoi()函数、itoa()函数、sprintf()函数
摘要:在编程中经常需要用到数字与字符串的转换,下面就总结一下。1.atoi() C/C++标准库函数,用于字符串到整数的转换。 函数原型:int atoi (const char * str);1 #include 2 #include 3 int main ()4 {5 char *numchars="1234";6 int num=atoi(numchars);7 printf("%d\n",num);8 return 0;9 } 另外C/C++还提供的标准库函数有: (1)long int atol ( const char * str ); (2... 阅读全文

posted @ 2013-12-18 11:14 旭东的博客 阅读(11987) 评论(0) 推荐(0)

C语言文件打开方式及说明
摘要:ANSI C规定文件打开用函数fopen,关闭为fclose。1、调用方式通常为:FILE *fp;fp=fopen(文件名, 打开方式);2、参数说明:文件名: 形如"myfile.dat"、"F:\data\myfile.dat"等等;打开方式: "r"(只读) 为输入打开一个文本文件 "w"(只写) 为输出打开一个文本文件 "a"(追加) 向文件文件尾添加数据 "rb"(只读) 为输入打开一个二进制文件 "wb"(只写) 为输出打开一个二进制文件 & 阅读全文

posted @ 2013-12-17 14:54 旭东的博客 阅读(17371) 评论(1) 推荐(0)

C语言 fread()与fwrite()函数说明与示例
摘要:1.作用 读写文件数据块。2.函数原型 (1)size_t fread ( void * ptr, size_t size, size_t count, FILE * stream ); 其中,ptr:指向保存结果的指针;size:每个数据类型的大小;count:数据的个数;stream:文件指针 函数返回读取数据的个数。 (2)size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream ); 其中,ptr:指向保存数据的指针;size:每个数据类型的大小;count:数据的... 阅读全文

posted @ 2013-12-17 13:57 旭东的博客 阅读(139668) 评论(2) 推荐(2)

win C/C++程序通过Get方式获取网页源代码
摘要:[转自]http://www.cnblogs.com/coderzh/archive/2008/11/24/1340134.html 1 #include 2 #include 3 #include 4 5 #define MAXSIZE 1024 6 #pragma comment(lib, "Wininet.lib") 7 8 void urlopen(_TCHAR*); 9 10 int _tmain(int argc, _TCHAR* argv[])11 {12 urlopen(_T("http://www.cnblogs.com/"));13 阅读全文

posted @ 2013-12-13 22:52 旭东的博客 阅读(8360) 评论(0) 推荐(0)

[转]VS2010快捷键
摘要:VS2010的快捷键,后附VS2008的快捷键Ctrl+E,D ----格式化全部代码Ctrl+E,F ----格式化选中的代码CTRL + SHIFT + B生成解决方案CTRL + F7 生成编译CTRL + O 打开文件CTRL + SHIFT + O打开项目CTRL + SHIFT + C显示类视图窗口F4 显示属性窗口SHIFT + F4显示项目属性窗口CTRL + SHIFT + E显示资源视图F12 转到定义CTRL + F12转到声明CTRL + ALT + J对象浏览CTRL + ALT + F1帮助目录CTRL + F1 动态帮助F1 帮助SHIFT + F1当前窗口帮助C 阅读全文

posted @ 2013-12-09 22:47 旭东的博客 阅读(342) 评论(0) 推荐(0)

C/C++/Java 程序计时功能函数
摘要:编写程序肯定要使用计时功能,来判断程序的执行时间。今天Google了一下,自己就梳理总结一下:(1)C/C++程序计时 C/C++中使用的计时函数是clock()。 C语言中的头文件对应是#include,C++中对应的头文件为#include。 如下程序实例,其中clock_t为long类型,CLOCKS_PER_SEC为每秒的时钟周期常数: 1 #include 2 #include 3 using namespace std; 4 5 int test() 6 { 7 int x=0; 8 for(int i=0;i<200000000;i++) 9 ... 阅读全文

posted @ 2013-12-07 14:18 旭东的博客 阅读(4048) 评论(0) 推荐(0)

标准C++中的string类的用法总结
摘要:[转自]http://www.cnblogs.com/xfreedom/archive/2011/05/16/2048037.html要想使用标准C++中string类,必须要包含#include // 注意是,不是,带.h的是C语言中的头文件using std::string;using std::wstring;或using namespace std;下面你就可以使用string/wstring了,它们两分别对应着char和wchar_t。string和wstring的用法是一样的,以下只用string作介绍:string类的构造函数:string(const char *s); //用 阅读全文

posted @ 2013-11-19 21:28 旭东的博客 阅读(668) 评论(0) 推荐(0)

STL队列 之FIFO队列(queue)、优先队列(priority_queue)、双端队列(deque)
摘要:1.FIFO队列 std::queue就是普通意思上的FIFO队列在STL中的模版。 1.1主要的方法有: (1)T front():访问队列的对头元素,并不删除对头元素 (2)T back():访问队列的末尾元素,并不删除末尾元素 (3)void pop():删除对头元素。 (4)void push(T):元素入队 1.2代码实例 1 #include 2 #include 3 using namespace std; 4 int main() 5 { 6 std::queue myqueue; 7 myqueue.push(11); ... 阅读全文

posted @ 2013-11-18 21:50 旭东的博客 阅读(3670) 评论(0) 推荐(1)

C++函数对象
摘要:原文:http://blog.csdn.net/ggggqqqqihc/article/details/1727020 标准库里的count_if可以统计容器中满足特定条件的元素的个数。例如要统计一个整数vector——ivec中正数的个数,可以先写一个返回类型为bool,含有一个int参数的条件函数:bool pred(int val){ return val>0;} 之后可以用count_if(ivec.begin(),ivec.end(),pred)计算出正整数的个数。但这个方法有一个明显的缺陷:如果要统计大于10的个数、大于100的个数……就要写很多个类似的函数,能不能进... 阅读全文

posted @ 2013-06-17 12:57 旭东的博客 阅读(1037) 评论(0) 推荐(0)

导航