deque
创建deque
deque<T> deqT; "默认构造形式"
deque(beg, end); "构造函数将[beg, end)区间中的元素拷贝给本身(beg和end都是deque的迭代器"
deque(n, elem); "构造函数将n个elem拷贝给本身"
deque(const deque &deq); "拷贝构造函数"
deque赋值
d2 = d1; "直接赋值"
d3.assign(d1.begin(), d1.end());
d4.assign(10, 100);
deque大小操作
deque.empty(); "判断容器是否为空"
deque.size(); "返回容器中元素的个数"
deque.resize(num); "重新指定容器的长度为num,若容器变长,则以默认值填充新位置。"
"如果容器变短,则末尾超出容器长度的元素被删除。"
deque.resize(num, elem); "重新指定容器的长度为num,若容器变长,则以elem值填充新位置。"
"如果容器变短,则末尾超出容器长度的元素被删除。"
deque 插入和删除
首尾插入
push_back(elem); "在容器尾部添加一个数据"
push_front(elem); "在容器头部插入一个数据"
pop_back(); "删除容器最后一个数据"
pop_front(); "删除容器第一个数据"
指定位置
insert(pos,elem); "在pos位置插入一个elem元素的拷贝,返回新数据的位置。"
insert(pos,n,elem); "在pos位置插入n个elem数据,无返回值。"
insert(pos,beg,end); "在pos位置插入[beg,end)区间的数据,无返回值。"
clear(); "清空容器的所有数据"
erase(beg,end); "删除[beg,end)区间的数据,返回下一个数据的位置。"
erase(pos); "删除pos位置的数据,返回下一个数据的位置。"
小结:erase和pop区别
deque数据的读取
at(int idx); "返回索引idx所指的数据"
[]; "返回索引idx所指的数据"
front(); "返回容器中第一个数据元素"
back(); "返回容器中最后一个数据元素"
stack
构造函数:
stack<T> stk; "stack采用模板类实现, stack对象的默认构造形式"
stack(const stack &stk); "拷贝构造函数"
赋值操作:
stack& operator=(const stack &stk); "重载等号操作符"
数据存取:
push(elem); "向栈顶添加元素"
pop(); "从栈顶移除第一个元素"
top(); "返回栈顶元素"
大小操作:
empty(); "判断堆栈是否为空"
size(); "返回栈的大小"