社区
C++ 语言
帖子详情
template
>
wobushijnt
2011-11-10 04:14:53
上式中 class _A=allocator<_Ty>是什么意思
...全文
360
8
打赏
收藏
template<class _Ty, class _A = allocator<_Ty> >
上式中 class _A=allocator是什么意思
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Vector_fz
2011-11-10
打赏
举报
回复
使用分配器来管理 _Ty并作为模板的默认参数
xingfeng2510
2011-11-10
打赏
举报
回复
模板类型参数_A的默认只为allocator<_Ty>
举个例子就很好理解了:
template<class _Ty, class _A = allocator<_Ty> > class basic_string;
这是模板basic_string的声明式,可以指定一个模板形参,basic_string<char>
省略的第二个模板形参使用默认值allocator<_Ty>,也就是allocator<char>,
basic_string<char>等价于basic_string<char, allocator<char> >.
如果指定两个参数,就可以不使用默认值,
basic_string<wchar, other_allocator<wchar> >这里使用了自定义的分配器
other_allocator,而没有使用默认的allocator
FrankHB1989
2011-11-10
打赏
举报
回复
STL的allocator,用于实现容器间公用的存储分配策略。
机智的呆呆
2011-11-10
打赏
举报
回复
[Quote=引用 2 楼 wobushijnt 的回复:]
。。。。。。。。。。。。你说的不是废话么
[/Quote]
俺也说些废话吧,详细的解释可以参考下面3本书
《c++ template》
《stl源码剖析》
《c++ morden design》
pengzhixi
2011-11-10
打赏
举报
回复
那还要怎么说呢?难道说 _A是一个模板参数,传递给这个模板参数的应该是一个类类型,而不是其他内置类型?
iamnobody
2011-11-10
打赏
举报
回复
allocator 是一个类模板,allocator<_Ty>是用_Ty作为参数实例化一个类模板,变成一个模板类(也是一个类);class _A=allocator<_Ty> _A的默认类型参数是 allocator<_Ty>
和函数的默认参数用法一样
wobushijnt
2011-11-10
打赏
举报
回复
。。。。。。。。。。。。你说的不是废话么
pengzhixi
2011-11-10
打赏
举报
回复
默认参数!!
<7>精通 S T L(C++标准模板库)
STL是Standard
Template
Library的简称,中文名标准模板库,是集数据结构与算法集大成者。在C++程序应用领域,可谓是无所不在,大放光彩。 STL可分为容器(containers)、迭代器(iterators)、空间配置器(
allocator
)、...
allocator
详解
vector和内存池 最近看内存池有关的东西,又回顾了一下之前看C++ Primer时自己写的vector,发现只是对基本的Vector的成员函数进行了重写,最重要的地方也就是分配器用的都是默认的,所以内存分配这块之前就没弄清楚。
template
<
class
_
Ty
,
class
_Alloc =
allocator
<_
Ty
> >
class
vector : pu...
C++ 内存池
关于内存池 在大多分配器中,在标准库中的容器中,一般是用标准库的
template
<
class
_
Ty
,
class
_Alloc =
allocator
<_
Ty
>>;也就是标准库的
allocator
,使用的是operator new。值得注意的是,此
allocator
是带有cookie的,内部实际就是一个operator new调用一次malloc。 内存池的设计,一个通...
C++ vector 底层实现
STL众多容器中,vector 是最常用的容器之一,其底层所采用的数据结构非常简单,就只是一段连续的线性内存空间。 通过分析 vector 容器的源代码不难发现,它就是使用 3 个迭代器(可以理解成指针)来表示的: //_Alloc 表示内存分配器,此参数几乎不需要我们关心
template
<
class
_
Ty
,
class
_Alloc =
allocator
<_
Ty
>>
class
vector{ ... protected: pointer _Myfi..
C++STL标准模板库之容器vector
网上总结vector原理和用法的文章有很多,我也是在学习中逐渐摸索总结,希望能够和大家共同进步。 Vector简介 vector是STL标准模板库中的重要容器之一,可以通过设置来存放各种不同类型的数据,在STL中vector的实现方式是类模板,这些模板的参数允许我们指定容器中元素的数据类型,在结构上更加灵活,并且能够避免重复编码。 VECTOR实现 在工程中创建一个vector对象,在vector上右键转到定义,可以找到vector对应的实现代码。
template
<
class
_
Ty
,
class
C++ 语言
64,282
社区成员
250,470
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章