C++,vector模板类的问题? std::vector<PointT, Eigen::aligned_allocator<PointT> > points;

我的具体问题是我看了C++PrimerPlus的书模板类实例化的格式一般是vector<数据类型>名称;但是std::vector<PointT(数据类型1),Eigen... 我的具体问题是

我看了C++ Primer Plus 的书
模板类实例化的格式一般是
vector<数据类型> 名称 ;
但是std::vector<PointT(数据类型1), Eigen::aligned_allocator<PointT>(数据类型2) > points;
这个语句明显有两个数据类型了。
请问一下
到底是怎么回事?
展开
 我来答
zjfaok
2014-07-31 · TA获得超过6806个赞
知道大有可为答主
回答量:4146
采纳率:62%
帮助的人:1593万
展开全部

实际上模板和函数一样,是可以有默认参数的,std::vector的声明是

template<
    class T,
    class Allocator = std::allocator<T>
> class vector;

有两个模板参数,T 是元素类型,而 Allocator 负责提供 vector 需要用到的动态内存。其中 Allocator 参数有默认值,一般的使用不需要指定这个参数。但有时对内存有特殊需求,就需要提供自己定义的内存管理类。


把容器操作和内存管理分开,这是STL的一个亮点,你在设计容器时也可以学习

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式