2021年11月15日 C++ STL库 deque&&stack

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();  "返回栈的大小"

Guess you like

Origin blog.csdn.net/LEewhITe2003/article/details/121342174