fill()函数
stack 和 queue
优先队列priority_queue
fill()函数
函数简介
fill()与fill_n()的区别
为二级指针赋值
int **p = new int*[3];
for(int i=0;i<3;i++){
p[i] = new int[3];
fill_n(p[i],3,1);
}
或者
int **p = new int*[3];
for(int i=0;i<3;i++){
p[i] = new int[3];
fill(p[i],p[i]+3,1);
}
stack 和 queue
stacka; //定义栈,Type为数据类型 s.push(x); //把x放到栈顶 s.top(); //返回栈顶的元素,但不会删除 s.pop(); //删除栈顶的元素,但不会返回 s.size(); //返回栈中元素的个数 s.empty(); //检查栈是否为空,如果为空,返回true,否则返回false queue q; //定义栈,Type为数据类型,例如int、float、char q.push(x); //把x放进队列 q.front(); //返回队首元素,但不会删除 q.pop(); //删除队首元素 q.back(); //返回队尾元素 q.size(); //返回元素个数 q.empty(); //检查队列是否为空
优先队列priority_queue
一、常用函数
- top()
- empty()
- size()
- push()
- pop()
二、创建:priority_queue
- priority_queue
() > 小顶堆 - priority_queue
() > 大顶堆 - priority_queue
,vector< pair >,cmp> (说明:cmp需要自定义,默认先比较first后比较second)
三、自定义比较函数
- sort()函数有三种自定义方式: 重载小于操作符,自定义cmp函数,自定义仿函数。
- priority_queue只能选择重载小于操作符和自定义仿函数。
// 重载小于操作符(class中也如此)
// 选择此方法,创建priority_queue时,function就可以省略
struct stu{
string name;
int age;
bool operator<(const stu& p)const{
return age < p.age; // 大顶堆
// 此处的大于号或小于号,与单独使用sort()函数相反
// 如果这是sort函数自定义比较函数的话
// 此处的小于号代表着从小到大排序
}
}
// 自定义仿函数
// 选择此方法,创建priority_queue时,function处填写cmp
struct cmp{
bool operator<(const stu& p,const stu& q){
return p.age < q.age; // 大顶堆
}
}



