`
美丽的小岛
  • 浏览: 300337 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论
文章列表
转自:http://www.jb51.net/article/56004.htm 这篇文章主要介绍了C++模板之特化与偏特化详解,本文讲解了什么是C++模板、模板特化、模板偏特化、特化与偏特化的调用顺序等内容,需要的朋友可以参考下. 前言 说到C++模板,这个已经 ...
在泛型编程的形参表中,关键字typename和class具有相同的含义,可以相互使用,两个关键字都可以在同一模板形参表中使用:   1.  typename用在模板定义里,标明其后的模板参数是类型参数。   [html] view plaincopy template
概述:traits是一种特性萃取技术,它在Generic Programming中被广泛运用,常常被用于使不同的类型可以用于相同的操作,或者针对不同类型提供不同的实现.traits在实现过程中往往需要用到以下三种C++的基本特性:enumtypedeftemplate (partial) specialization其中:enum用于将在不同类型间变化的标示统一成一个,它在C++中常常被用于在类中替代define

POD型别

    博客分类:
  • c++
  • c
POD全称Plain Old Data。通俗的讲,一个类或结构体通过二进制拷贝后还能保持其数据不变,那么它就是一个POD类型。 平凡的定义: 1. 有平凡的构造函数; 2. 有平凡的拷贝构造函数; 3. 有平凡的移动构造函数; 4. 有平凡的拷贝赋值运算符; 5. 有平凡的移动赋值运算符; 6. 有平凡的析构函数; 7. 不能包含虚函数; 8. 不能包含虚基类。 #include "stdafx.h" #include <iostream> using namespace std; class A { A(){} }; class B ...
内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会 ...
RAII是指C++语言中的一个惯用法(idiom),它是“Resource Acquisition Is Initialization”的首字母缩写。中文可将其翻译为“资源获取就是初始化”。虽然从某种程度上说这个名称并没有体现出该惯性法的本质精神,但是作为标准C++资源管理的关键技术,RAII早已在C++社群中深入人心。 我记得第一次学到RAII惯用法是在Bjarne Stroustrup的《C++程序设计语言(第3版)》一书中。当讲述C++资源管理时,Bjarne这样写道: 使用局部对象管理资源的技术通常称为“资源获取就是初始化”。这种通用技术依赖于构造函数和析构函数的性质以及它们与异 ...

内存分配器<转>

    博客分类:
  • c++
  • c
题记:内存管理一直是C/C++程序的红灯区。关于内存管理的话题,大致有两类侧重点,一类是内存的正确使用,例如C++中new和delete应该成对出现,用RAII技巧管理内存资源,auto_ptr等方面,很多C/C++书籍中都使用技巧的介绍。另一 ...
http://blog.sina.com.cn/s/blog_3c6889fe0100tqe8.html 乍一看,在C++中动态分配内存很简单:new是分配,delete是释放,就这么简单。然而,这篇文章讲得要复杂一点,并且要考虑到自定义层次。这也许对简单的程序并不重要,但对你在代码中控制内存却是十分必要的,是否能写一个自定义的分配器,某种高级内存管理表或一个特定的垃圾回收机制。 这篇文章并不是一个综合的手册,而是一个C++中各种内存分配方法的概述。它面向已经很熟悉C++语言的读者。  

可变参数va_list

    博客分类:
  • c
  • c++
1.要在函数中使用参数,首先要包含头文件<stdarg.h>。这个头文件声明了一个va_list类型,定义了四个宏,用来遍历可变参数列表。 void va_start(va_list ap, last); type va_arg(va_list ap, type); void va_end(va_list ap); void va_copy(va_list dest, va_list src); 下面详细介绍这些宏定义: 2.void va_start(va_list ap, last) va_start必须第一个调用,它初始化va_list类型的变量ap,使ap指向 ...
很明显的道理,不要简单从字面上的东西去理解,虽然char*可以指向字符串,但它毕竟只是一个指针,指针存放的内容只能是地址,请谨记。 而string是一个对象,当传递一个常量字符串(例如"abc")进来时,可以通过string的构造函数自动将该常量字符串转换为一个string对象。 如果把该常量字符串赋值给char*类型,就如同char* p = "abc"; 这个时候p只是一个指向"abc"的首地址的指针而已     2种修改方式 I [cpp] view plaincopy
http://blog.csdn.net/lizhengnanhua/article/details/9061755 一、Apriori算法简介:  Apriori算法是一种挖掘关联规则的频繁项集算法,其核心思想是通过候选集生成和情节的向下封闭检测两个阶段来挖掘频繁项集。 Apriori(先验的,推测的)算法应用广泛,可用于消费市场价格分析,猜测顾客的消费习惯;网络安全领域中的入侵检测技术;可用在用于高校管理中,根据挖掘规则可以有效地辅助学校管理部门有针对性的开展贫困助学工作;也可用在移动通信领域中,指导运营商的业务运营和辅助业务提供商的决策制定。 二、挖掘步骤: 1.依据支持度找出所 ...

map注意的两个问题

    博客分类:
  • c
  • c++
代码1 void main() { map< int, int* > mapInt; for ( int i = 0; i < 5; i++ ) { mapInt[ i ] = new int( i ); } // 再插入键值为2的元素 mapInt[ 2 ] = new int( 2 ); // 做一些操作 // 删除内存。 map< i ...
叉乘(cross product)相对于点乘,叉乘可能更有用吧。2维空间中的叉乘是:    V1(x1, y1) X V2(x2, y2) = x1y2 – y1x2看起来像个标量,事实上叉乘的结果是个向量,方向在z轴上。上述结果是它的模。在二维空间里,让我们暂时忽略它的方向,将结果看成一个向量,那么这个结果类似于上述的点积,我们有:    A x B = |A||B|Sin(θ)然而角度 θ和上面点乘的角度有一点点不同,他是有正负的,是指从
本章你将学到 纹理映射基础知识 纹理坐标 纹理对象及绑定 纹理过滤 mipmap和自动生成mipmap 纹理参数, 外包模式, 细节级别 纹理环境和纹理函数 Table of Contents 1 概述 2 预备知识: 纹理坐标 3 使用纹理映射 3.1 纹理对象 3.2 纹理绑定
投影纹理映射 (projective texture mapping):就是把纹理投射到场景的物体上,就像一个投影机把幻灯片投影到其他物体上一样。 如下图:用左边的纹理图像投影到一个茶壶上  投影纹理的实现方法: 其实最重要的一点就是确定纹理坐标,纹理坐标的确定依赖于物体表面点的相对位置和投影机的位置。在OpenGL中我们可以定义一个camera,我们定义一个中心在投影机位置的坐标空间,viewMatrix(V)把世界坐标系的点转换到投影机的坐标系中,然后定义一个投影矩阵(P)。这样P*V就把点转化到投影空间,但规格化的投影空间是[-1,1],而纹理坐标是[0,1],因此我们需要把 这个 ...
Global site tag (gtag.js) - Google Analytics