栈(stack)

#include <stack>

int main() {
    stack<int> s;
    s.push(3);
    s.push(7);
    s.push(1);
    cout << s.size() << " ";//栈的大小

    cout << s.top() << " ";
    s.pop();//删除栈顶元素

    bool isEmpty = s.empty();
}

队列(queue)

#include <queue>

int main() {
    queue<string> q;

    q.push("red");
    q.push("yellow");
    cout << q.size() << " ";

    cout << q.front() << " ";
    q.pop();//删除元素

    bool isEmpty = q.empty();
}

vector

column1column2column3
content1content2content3
函数名功能复杂度
size()返回向量的元素数O(1)
push_back(x)向向量末尾添加元素xO(1)
pop_back()删除向量的最后一个元素O(1)
begin()返回指向向量开头的迭代器O(1)
end()返回指向向量末尾的迭代器O(1)
insert(p,x)向向量的位置p处插入元素xO(n)
erase( p )删除向量位置p的元素O(n)
clear()删除向量中所有元素O(n)
#include <vector>

int main() {
    vector<int> v = {1, 3, 2, 4};
    v.push_back(9);
    v.insert(v.begin() + 2, 6);
    v.pop_back();
    v.erase(v.end() - 2);
}

双向链表(list)

函数名功能复杂度
size()返回表的元素数O(1)
push_front(x)向表开头添加元素xO(1)
push_back(x)向表末尾添加元素xO(1)
pop_front()删除表开头的元素O(1)
pop_back()删除表的最后一个元素O(1)
insert(p,x)向表的位置p处插入元素xO(1)
erase( p )删除表位置p的元素O(1)
clear()删除表中所有元素O(n)

hhhhh