vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。 为了可以使用vector,必须在你的头 ...
分类:
其他好文 时间:
2016-09-06 18:15:13
阅读次数:
174
C++11目前已经引入了unique_ptr, shared_ptr, weak_ptr等智能指针以及相关的模板类enable_shared_from_this等。被广泛使用的是shared_ptr,...
分类:
编程语言 时间:
2016-09-06 17:00:25
阅读次数:
269
C++对模板类的支持比较灵活,模板类的参数中除了可以有类型参数,还可以有普通参数。例如: N 是一个普通参数,用来传递数据,而不是类型,它与常见的函数中的参数一样,可以在类体中使用。这称为模板中的函数式参数。 T 用来传递数据的类型,N 用来传递数据的值,数据的值和类型都可以参数化,这是典型的面向对 ...
分类:
编程语言 时间:
2016-09-03 14:59:04
阅读次数:
149
C++除了支持模板函数,还支持模板类。模板类的目的同样是将数据类型参数化。 声明模板类的语法为: 模板类和模板函数都是以 template 开头,后跟数据类型参数列表;数据类型参数不能为空,多个参数用逗号隔开。 一但声明了模板类,就可以用数据类型参数来声明类中的成员变量和成员函数。也就是说,原来使用 ...
分类:
编程语言 时间:
2016-09-03 13:29:09
阅读次数:
238
1.函数模板 关键字template总是放在模板的定义与声明的最前面。关键字后面是用逗号分隔的模板参数表,它用尖括号(<>)括起来。该列表是模板参数表,不能为空。模板参数分为:(1) 模板类型参数,代表一种类型;(2) 模板非类型参数,代表一个常量表达式。 eg: template <class T ...
分类:
其他好文 时间:
2016-09-01 18:08:34
阅读次数:
155
主要原因:C++标准明确表示,当一个模板不被用到的时侯它就不该被实例化出来; 如以下代码:main.cpp中调用到模板类A的方法A<int>::f,因A<int>::f在test.cpp中实现,编译器在#1处并不知道A<int>::f的定义,故寄希望于连接器,实际上test.cpp编译出来的test ...
分类:
编程语言 时间:
2016-08-30 19:41:03
阅读次数:
159
2、queuequeue 模板类的定义在头文件中。与stack 模板类很相似,queue 模板类也需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型。定义queue 对象的示例代码如下:queue q1;queue q2; queue 的基本操... ...
分类:
编程语言 时间:
2016-08-26 10:19:19
阅读次数:
175
一、名词解释 1,多态 1)静态多态:a) 函数多态:函数重载,运算符重载 b) 模板多态:函数模板,类模板 2)动态多态:虚函数(切记:只有通过指针或引用才能实现动态多态性。"对象.虚函数“ 和 ”类::虚函数“ 这两种形式不能实现多态) 2,静态类型与动态类型 1) 静态类型:声明对象时,对象被 ...
分类:
其他好文 时间:
2016-08-25 20:59:06
阅读次数:
139
我们知道Spring通过各种DAO模板类降低了开发者使用各种数据持久技术的难度。这些模板类都是线程安全的,也就是说,多个DAO可以复用同一个模板实例而不会发生冲突。我们使用模板类访问底层数据,根据持久化技术的不同,模板类需要绑定数据连接或会话的资源。但这些资源本身是非线程安全的,也就是说它们不能在同 ...
分类:
编程语言 时间:
2016-08-24 17:27:56
阅读次数:
309
一、类型转换与模板类型参数 1、如果一个函数形参的类型使用了模板类型参数,那么它采用特殊的初始化规则。只有很有限的几种类型转换会自动地应用于这些实参。 ①、顶层const无论是在形参中还是在实参中,都会被忽略。 ②、const转换:可以将一个非const对象的引用(或指针)传递给一个const的引用 ...
分类:
编程语言 时间:
2016-08-24 12:39:48
阅读次数:
212