C、C++
iuhsihsow
行路难!行路难!多歧路,今安在?
长风破浪会有时,直挂云帆济沧海。
展开
-
C中const用法
看来还是不够理解啊,一用到就会犹豫,然后反复尝试试出来结果。从网上摘点资料吧。http://zhidao.baidu.com/question/345457720.htmlC中CONST的使用 const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解转载 2012-02-06 16:21:24 · 860 阅读 · 1 评论 -
设计模式之适配器,C++实现
大家应该用得比较多,就只上代码// AdapterMode.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"// 适配器模式(Adapter),将一个类的借口转换成客户端希望// 的另外一个借口,适配器模式使得原本由于借口不兼容而不能// 一起工作的那些类可以一起工作// 说白了,就是改名// 情景假设:一个计算类的派生类由原创 2013-01-31 16:22:08 · 1080 阅读 · 0 评论 -
VS2008如何在release下调试
一般都是在debug下调试程序,但有时候,为了加快调试速度,或者debug版本由于库的缺失,编译不过,需要在release下进行调试。代码的调试相关的信息存在pdb中,里面包括了代码的名称和行数,还有函数的地址,偏移等,通过pdb,可以讲二进制和源代码联系起来。所以,当程序崩溃的时候,可以通过生成的dump文件和pdb在开发者的机器上进行调试。首先要在【生成调试信息】这一栏原创 2013-01-16 21:52:16 · 3376 阅读 · 0 评论 -
设计模式之抽象工厂,C++实现(一)
本部分就说明最简单的抽象工厂实现,当然在实际项目应用中不会这么做,仅为解释该模式。上图的抽象 工厂有两个工厂,分别生产对应的ProductA和ProductB(可以假想为蓝色或者红色的两种产品A22 = 4)下面为简单代码示例// 抽象工厂模式(Abstract Factory),提供一个创建 // 一系列相关或相互依赖对象的接口,而无需指定他们具体的类原创 2013-01-05 22:59:20 · 1302 阅读 · 0 评论 -
设计模式之状态模式,C++实现
代码:这次代码质量不佳啊,估计是应用场景选择错误了。// StateMode.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #ifdef _DEBUG#define _CRTDBG_MAP_ALLOC#include #include #define new new(_NORMAL_BLOCK, __FI原创 2013-01-31 15:55:05 · 992 阅读 · 0 评论 -
设计模式之代理模式,C++实现
原创:http://blog.csdn.net/iuhsihsow这一篇主要参照了《大话设计模式》//代理模式:为其他对象提供一种代理以控制这个对象的访问 //简而言之就是给对象加一个壳 //1.远程代理 //2.虚拟代理 //3.安全代理 //4.智能指引 //问1:代理模式和聚合关系有什么区别,感觉适配器模式也能解决类似问题?原创 2012-11-29 09:32:45 · 1863 阅读 · 1 评论 -
函数指针
1.简要介绍2.使用示例函数指针的一般用法:#include "stdafx.h"typedef int (*AddCommFunc)(const int &a, const int &b);int AddRight(const int &a, const int &b){ return (a + b);}int AddError(const int &a,原创 2013-01-22 13:42:36 · 819 阅读 · 0 评论 -
Why C++ Supports both Class and Typename for Type Parameters
http://blogs.msdn.com/b/slippman/archive/2004/08/11/212768.aspxRecently, someone asked me why we support both class and typename within C++ to indicate a type parameter since the keywords do not转载 2013-03-12 13:49:02 · 1820 阅读 · 0 评论 -
STL,迭代器的C++简单实现
// Iterator.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include using namespace std;// 对于C++,STL中已经包含迭代器的实现了// 就不再单独造车轮了// 部分代码见【STL源码剖析】// 来一个智能指针的示意namespac原创 2013-03-12 15:52:57 · 2405 阅读 · 0 评论 -
设计模式之迭代器模式,C++下的讨论
C++ stl里面有迭代器,看stl源码貌似更好,泛型编程嘛有机会写一段解析stl源码的体会。写了一部分关于stl中迭代的代码http://blog.csdn.net/iuhsihsow/article/details/8664123原创 2013-01-31 23:07:22 · 871 阅读 · 0 评论 -
内联虚函数可行吗
原文地址:http://blog.chinaunix.net/uid-102208-id-2968713.html 当一个函数是内联和虚函数时,会发生代码替换或使用虚表调用吗? 为了弄清楚内联和虚函数,让我们将它们分开来考虑。通常,一个内联函数是被展开的。class CFoo { private: int val; public:转载 2013-03-01 09:39:50 · 1395 阅读 · 0 评论 -
C++中宏的使用技巧
都是常用技巧,经常用C++的应该都会注意到一两条,为综合整理,非个人独创,从开源代码以及书本论文中抄过来的,数目链接http://blog.csdn.net/iuhsihsow/article/details/7222093如有雷同,纯属巧合。直接上代码,这次归纳了6点// Maro.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#inc原创 2013-03-28 14:39:20 · 2514 阅读 · 3 评论 -
设计模式之桥接模式
将整体里面的可能变化的部分抽象出来其实个人对桥接模式不是很理解,貌似接触的里面没有这么复杂的结构不过还是多用聚合,少用继承吧。(总觉得聚合组合比较好管理,一个好的继承是需要千锤百炼的,多重继承,多层继承的内存消耗不可小觑)自己对这个模式都没有怎么理解,那么写出的代码估计也不敢恭维,不过还是写下来,作为记录吧。// Bridge.cpp : Defines t原创 2013-02-01 16:23:03 · 1020 阅读 · 0 评论 -
设计模式之组合模式
想不出组合模式优缺点,我觉得和一般的树形结构都差不多。恩,不,还是有不同的,一般的二叉树和四叉树,他们的节点都是属于同一类型一般的树class Node{public:Node* pParent;std::list subNodeList;};组合模式:class Component{public:Add(Component* p原创 2013-01-31 23:05:37 · 930 阅读 · 0 评论 -
设计模式之享元模式,C++实现
享元模式很常见,是一种减小内存的方式,大到三维场景中的一个房子,小到文字处理系统中的一个英文字母,都可以使用享元模式。借鉴一下《大话设计模式》中的uml图吧下面是代码:// Flyweight.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include usin原创 2013-03-04 16:57:39 · 2497 阅读 · 0 评论 -
机器学习库—TensorFlow 简介
机器学习库tensorflow的简介原创 2017-09-10 10:25:10 · 717 阅读 · 1 评论 -
特定于类的内存管理(C++必知必会,代码解析)
C++ 必知必会里面有这么一节,说明如何给对特定类的内存进行管理,当然,和普通的内存池有一定的差别。最基础的内存池,只是提供一个内存分配的容器,需要多少内存,直接从内存池中获取,返回特定的指针,并不只是适用于特定的类。当然都是重载了operator new和operator deleteps.由于没有进入构造函数,所以构造函数里面使用Init()函数来初始化对象。不要直接初始化原创 2013-01-29 10:59:12 · 1301 阅读 · 0 评论 -
单件模式的基类,C++
看《游戏编程精粹1》中间有一段代码#include // 一个单件模式的模板类 template class SingleTon { public: static T* ms_SingleTon; SingleTon() { assert(!ms_SingleTon); int offset = (int)(T*)1 - (int)(S原创 2013-01-25 23:54:36 · 2644 阅读 · 1 评论 -
C++检查内存泄露
说明,我使用的ide是vs20081. 工程设置为debug内存泄露的检测一般在debug模式下进行2.在需要检查内存泄露的cpp头部加上#ifdef _DEBUG #define _CRTDBG_MAP_ALLOC #include #include #define new new(_NORMAL_BLOCK, __FILE__, __L原创 2013-01-11 12:31:12 · 3561 阅读 · 1 评论 -
用 Eclipse 平台进行 C/C++ 开发
简介: 我们将概述如何在 C/C++ 开发项目中使用 Eclipse 平台。尽管 Eclipse 主要是一个 Java 开发环境,但其体系结构确保了对其它编程语言的支持。在本文中,您将学习如何使用 C/C++ 开发工具箱(C/C++ Development Toolkit,CDT),它是可用于 Eclipse 的最佳 C/C++ 工具箱。本文的标签: c, cpp, eclipse, e转载 2012-02-15 14:20:11 · 876 阅读 · 1 评论 -
C++ 中定时器的用法
转载的地址:http://blog.163.com/linzuxin@126/blog/static/340740572008101311552948/1.1 用WM_TIMER来设置定时器 先请看SetTimer这个API函数的原型 UINT_PTR SetTimer( HWND hWnd, // 窗口句柄 UINT_PTR nID转载 2012-03-05 09:51:06 · 13643 阅读 · 0 评论 -
如何写DLL(C++)
很久以前,刚入职的时候,什么都不懂,有同事教了下怎么写dll,然后自己开始慢慢接触dll君。感谢当初与我分享该方面知识的hzc同学(貌似是一个周六上午)。所以也想和大家分享一下。iuhsihsow个人心得。 做稍微大一点的工程就不能不接触Dll了,将自己写的一些相对独立的,比较基础的,功能需求稳定的模块写成动态库,会减少后期很多工作量。优点如下:1.利于修改,无需重原创 2012-10-16 21:39:50 · 3825 阅读 · 2 评论 -
stl的vector,map,list删除元素
vector看成数组,list看成链表,具体的内部存储方法可以参考stl数据定义#include #include #include using namespace std; typedef map ByteMap; ByteMap testMap; typedef vector IntVec; IntVec testVec; typedef原创 2012-12-28 16:29:19 · 1153 阅读 · 0 评论 -
使用SWIG将C++绑定到python
原文地址:http://blog.csdn.net/hugewave/article/details/7705392一、为什么要绑定c++和python都是通用的编程语言,能完成网络、界面、数据库、计算、商务、游戏等任意的应用,但是相比较而言,python比c++更高级一些。python是个解释语言,C++语言需要编译,解决一个相同的问题,pyhon比C++节省5倍以上的代码量,有转载 2012-12-30 17:17:18 · 1274 阅读 · 0 评论 -
C++ 内存池 -- C++ Memory Pool
C++ 内存池l 下载示例工程 – 105Kbl 下载源代码 – 17.3Kb 目录l 引言l 它怎样工作l 示例l 使用这些代码l 好处l 关于代码l ToDol 历史 引言C/C++ 的内存分配 ( 通过 malloc 或 ne转载 2012-02-01 13:53:26 · 727 阅读 · 1 评论 -
VC程序员常用工具篇
原文http://topic.csdn.net/u/20120125/14/B9FC462F-891D-4609-998F-A649A306428A.html过年了,事情可以暂时放一下了。总结一下很有必要。又看到外面饭馆写着“岁末收工,初六开炉“了。好了,废话不多说,接着上篇继续评点程序员常用工具。当然还得请朋友们留言,好做继续的整理和补充,谢谢!顺祝大家新年好!转载 2012-02-03 17:19:16 · 833 阅读 · 1 评论 -
VC编译选项 MT MTd MD MDd 全面分析
VC编译选项多线程 (/MT)多线程调试 (/MTd)多线程 DLL (/MD)多线程调试 DLL (/MDd)C 运行时库 库文件Single thread(static link) ML libc.libDebug single thread(static link) MLd转载 2012-02-03 12:21:54 · 2363 阅读 · 1 评论 -
VC下Debug版和Release版的区别
经常在 CSDN 上看见有人问 Debug 运行正常但 Release 失败的问题。以往的讨论往往是经验性的,并没有指出会这样的真正原因是什么,要想找出真正的原因通常要凭运气。最近我看了一些这方面的书,又参考了 CSDN 上的一些帖子,然后深入研究了一下关于二者的不同。以下是我的一些体会,拿来与大家共享。 本文主要包含如下内容: 1. Debug 和 Release 编译方式的本质区转载 2012-12-31 14:31:26 · 957 阅读 · 0 评论 -
没有优化的快速排序
说明快速排序法(quick sort)是目前所公认最快的排序方法之一(视解题的对象而定),虽然 快速排序法在最差状况下可以达O(n2),但是在多数的情况下,快速排序法的效率表现是相当不 错的。 快速排序法的基本精神是在数列中找出适当的轴心,然后将数列一分为二,分别对左边与右边 数列进行排序,而影响快速排序法效率的正是轴心的选择。 这边所介绍的第一个快速排序法版本,是在多数的教科原创 2012-12-28 18:07:42 · 840 阅读 · 0 评论 -
SWIG学习总结(翻译,自己理解为辅)
原文地址 http://program.upc.edu.cn/kaitian/?p=65SWIG介绍SWIG (Simplified Wrapper and Interface Generator) ,即简化包以及接口生成器,为脚本语言(tcl,perl,python等)提供了C和C++的接口。SWIG在1995年在Los Alamos National Laborator为开发一个用转载 2012-12-30 17:18:15 · 7551 阅读 · 0 评论 -
C语言的指针
二维数组void main() { int num; /* 声明子函数 */ void average(float *point, int n); void search(float(*point)[4], int n); /* 定义一个静态存储数组并赋初值 */ static float score[4][4] = {{76, 90, 92, 87}, {68,原创 2013-01-03 17:12:22 · 851 阅读 · 0 评论 -
C语言算法(一)基础
代码来自C语言编程百例一、魔方阵矩阵阶数是 3 8 1 6 3 5 7 4 9 2 for(i=1; i<=n; i++) for(j=1; j<=n; j++) array[i][j] = 0; /* 建立魔方阵 */ j = n/2 + 1; array[1][j]原创 2013-01-03 18:16:14 · 994 阅读 · 0 评论 -
C++基类与派生类
一、构造构造函数不能为虚函数派生类要先调用基类的构造函数,而不能直接覆盖基类的构造函数。所以在派生类不能再成员初始化列表中初始化基类的成员见如下例子:class Base { public: Base(double dNum) : nBase(1) , dBase(dNum) { } int ShowNum(){return nBa原创 2013-01-05 13:32:54 · 1436 阅读 · 0 评论 -
C++基类和派生类的构造析构顺序
构造的时候先调用基类的构造函数,再调用派生类的构造函数析构的时候先调用派生类的析构函数,再调用基类的析构函数看一个例子:#include "stdafx.h" class Base { public: Base() { printf("Base construct!\n"); } virtual ~Base() { printf("Base原创 2013-01-09 09:23:19 · 2982 阅读 · 0 评论 -
Pytorch
2017年6月份做的一个ppt:http://pytorch.org/https://zhuanlan.zhihu.com/p/249531602017 年初开发团队表示,除 Facebook之外,它还已经被推特、卡内基梅隆大学和 Salesforce 等机构采用。Beta is here.@soumith soumith released this on Feb 2本周,Face原创 2017-11-26 20:03:02 · 1606 阅读 · 0 评论