123mcz / blog

0 stars 0 forks source link

容器 #15

Open 123mcz opened 1 week ago

123mcz commented 1 week ago

//栈—现实中的容器 //队-现实中买票排队 //都是操作受限制的容器 //双端队列 操作不受限 两端都能操作,支持随机存取——支持[] //STL中的指针是一种特殊指针,叫做迭代器,是使用类制作的 //***STL中的迭代器为啥用 ++p 效率高 省去了局部变量的创建和释放 //操作中间的位置,从中间的指定的位置插入或者删除数据 需要依赖与迭代器的定位 //insert 从迭代器指定的位置上插入数据 //vector和双端队列的区别是vector只能从末尾放入和删除数据 //vector 动态数组

#include <iostream>
#include <stack>
#include <queue>
#include <deque>//双端队列
using namespace std;
int main() {
    stack<int> arr;
    arr.push(12);
    arr.push(11);
    while (arr.size() != 0)//!arr.empty()
    {
        cout << arr.top() << endl;
        arr.pop();
    }
    queue<int> que;
    que.push(345);
    que.push(232);
    que.push(556);
    que.pop();
    cout << que.front() << endl;
    cout << que.back() << endl;
    while (!que.empty())
    {
        cout << que.front() << endl;
        que.pop();
    }
    deque<int> dep;
    dep.push_back(1);
    dep.push_back(2);
    dep.push_back(5);
    dep.push_back(4);
    dep.push_back(6);
    dep.push_front(10);
    dep.pop_back();
    for (int i = 0; i < dep.size(); i++)
    {
        cout << dep[i] << endl;
    }
    cout << dep[0] << endl;//等价于 dep.at(0)

//STL指针
    deque<int>::iterator p1 = dep.begin();
    auto p2 = dep.begin();
    p1++;
    dep.insert(p1, 11156);
    dep.erase(p1);
    cout << dep[1];
    //dep.end() //最后一个的下一个
    for (; p1 < dep.end(); p1++) {
        cout << *p1 << endl;
    }

}
123mcz commented 1 week ago

include

include

using namespace std; int main() { //size 里面放置了多少个数据 capacity 当前容器容量大小 vector deq = { 1,2,3,4,5,6,7,8,9,10 }; cout << deq.size() << endl; cout << deq.capacity() << endl; deq.push_back(2351); cout << deq.size() << endl; cout << deq.capacity() << endl;//capacity >= size cout << deq.capacity() << endl;//capacity >= size }