标准容器至少两个参数

一个是元素类型,一个是配置器类型。

当实例化一个 vector<int>这样的标准容器的时候,得到的其实是

vector<int, std::allocator<int>>。

但是后一个参数可以有缺省值,如下:

template <typename T, class Cont=Deque<T> >

class Stack {

};

然后Stack的初始化可以有:

std::stack<int> first;    
std::stack<int,std::vector<int> > third; 

但是有时候,想要换容器,又不想弄错类型,可以有(貌似STL没有支持):

template <typename T, template<typename>class Cont >

class Stack;

其中typename后面省略了名称

然后就可以

stack<int, vector> my_stack了。

时间: 2024-08-25 06:35:28

标准容器至少两个参数的相关文章

HDU 3518 Boring counting(后缀数组啊 求字符串中不重叠的重复出现至少两次的子串的个数)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3518 Problem Description 035 now faced a tough problem,his english teacher gives him a string,which consists with n lower case letter,he must figure out how many substrings appear at least twice,moreover

三个案例带你看懂LayoutInflater中inflate方法两个参数和三个参数的区别

版权声明:本文为sang原创文章,转载请注明出处. 目录(?)[+] 关于inflate参数问题,我想很多人多多少少都了解一点,网上也有很多关于这方面介绍的文章,但是枯燥的理论或者翻译让很多小伙伴看完之后还是一脸懵逼,so,我今天想通过三个案例来让小伙伴彻底的搞清楚这个东东.本篇博客我们不讲源码,只看使用.源码的解读会在下一篇博文中带来. inflate方法从大范围来看,分两种,三个参数的构造方法和两个参数的构造方法.在这两类中又有细分,OK,那我们就把各种情况都来演示一遍. 1.三个参数的in

C#缓存absoluteExpiration、slidingExpiration两个参数的疑惑

看了很多资料终于搞明白cache中absoluteExpiration,slidingExpiration这两个参数的含义. absoluteExpiration:用于设置绝对过期时间,它表示只要时间一到就过期,所以类型为System.DateTime,当给这个参数设置了一个时间时,slidingExpiration参数的值就只能为Cache.NoSlidingExpiration,否则出错: slidingExpiration:用于设置可调过期时间,它表示当离最后访问超过某个时间段后就过期,所

25.按要求编写一个Java应用程序: (1)编写一个矩形类Rect,包含: 两个属性:矩形的宽width;矩形的高height。 两个构造方法: 1.一个带有两个参数的构造方法,用于将width和height属性初化; 2.一个不带参数的构造方法,将矩形初始化为宽和高都为10。 两个方法: 求矩形面积的方法area() 求矩形周长的方法perimeter() (2)通过继承Rect类编写一个具有

package zhongqiuzuoye; public class Rect { public double width; public double height; Rect(double width,double height) //带有两个参数的构造方法,用于将width和height属性初化; { this.width=width; this.height=height; } Rect() //不带参数的构造方法,将矩形初始化为宽和高都为10. { width=10; height=

python列表sort方法的两个参数key, reverse

使用列表的sort方法可以进行排序,其中有两个参数用来表示排序的方式,代码: In [7]: a = ['x11','abc323','e26','112ddd'] In [8]: a.sort(key=len, reverse=True) In [9]: a Out[9]: ['abc323', '112ddd', 'x11', 'e26'] In [10]: a.sort(key=lambda x:x[-1]) In [11]: a Out[11]: ['x11', 'abc323', 'e

CreateProcess的前两个参数究竟怎么用

CreateProcess是Windows下用于创建进程的API函数,其第一个参数为lpApplicationName,从字面意思上看应该是一个可执行文件的名字,第二个参数为lpCommandLine,从字面意思上看应该是一个启动进程时传给程序的命令行.实际上并没有想象中的那么简单,MSDN上关于该API的这两个参数的说明,长达两屏幕.何耐这些说明都是纯英文的,包括我在内的很多程序员英文都不好,一看就头疼.于是索性就不看了,凭着自己的感觉去用,结果总是出现各种小问题,很不自在.最终硬着头皮看了一

以指针和引用两种参数实现删除单链表L中所有值为X的结点的函数

下面是单链表的数据结构 typedef struct LNode{ ElemType data; struct LNode *next; }LNode,*Linklist; 1.以指针参数实现 void delete_x_1(LNode *head,ElemType x){//head为单链表头结点,删除结点的值为x LNode *l = head; LNode *p = head->next; while(p != null){ if(p->data == x){ l->next =

zoj 3665 数论 二分 两个参数

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4888 两个参数的题,处理方法:枚举小的那个参数,然后二分大的参数 想到二分了,然后两个参数就不会了  然后暴力了下,但是其实K可以很大 所以时间不够 自己写的二分枚举+快速幂程序WA了很久....没明白哪里错了  参考了别人的... //#pragma comment(linker, "/STACK:102400000,102400000") #include &l

删除子串,只要是原串中有相同的子串就删掉所有子串。子串至少两个字符。

//删除子串,只要是原串中有相同的子串就删掉所有子串.子串至少两个字符. #include<stdio.h> #include<string.h> char* delete_string(char s[],char a[]); int main() { char s[255]; char data[255][255];//存放相同的子串 int i,j,k; int length; int row = 0,column;//data[][]的行标和列标 gets(s); lengt