deque

作者: 步行植物 | 来源:发表于2019-05-26 18:26 被阅读0次

    转载https://www.cnblogs.com/LearningTheLoad/p/7450948.html

    定义

    int main_0() {
    
        //默认构造函数 创建一个空的deque
        deque<int> c;
        
        //拷贝构造
        deque<int> c1(c);
        
        //赋值拷贝
        deque<int> c2 = c1;
        
        //指定元素个数创建
        deque<int> c3 (5,6);
        for (auto i : c3) {
            cout<< i << ",";
        }
        cout << "deque(个数, 元素)"<<endl;
        
        //指定区间创建
        deque<int> c4(c3.begin()+2, c3.begin()+3);
        for (auto i : c4) {
            cout<< i << ",";
        }
        cout << "deque(区间, 区间)"<<endl;
        
        //指定初始化列表创建
        deque<int> c5({2,3,4,5});
        for (auto i : c5) {
            cout<< i << ",";
        }
        cout << "deque({})"<<endl;
        
        //指定初始化列表创建
        deque<int> c6 = {2,3,4,5};
        for (auto i : c6) {
            cout<< i << ",";
        }
        cout << "deque = {}" <<endl;
        cout<<endl;
        return 0;
    }
    

    操作

    int main()
    {
        deque<int> c = {1,2,3,4,5};
        deque<int> c1;
        
        // 赋值初始化
        c1.assign(c.begin(),c.end());
        for (auto i: c1) {
            cout<< i << ",";
        }
        cout << "assign()" <<endl;
    
        //在尾部插入
        c1.push_back(6);
        for (auto i: c1) {
            cout<< i << ",";
        }
        cout << "push_back()" <<endl;
        
        //头插入
        c1.push_front(0);
        for (auto i: c1) {
            cout<< i << ",";
        }
        cout << "push_front()" <<endl;
        
        //弹尾元素
        c1.pop_back();
        for (auto i: c1) {
            cout<< i << ",";
        }
        cout << "pop_back()" <<endl;
        
        //弹头元素
        c1.pop_front();
        for (auto i: c1) {
            cout<< i << ",";
        }
        cout << "pop_front()" <<endl;
        
        //指定位置插入元素
        c1.insert(c1.begin()+3, 10);
        for (auto i: c1) {
            cout<< i << ",";
        }
        cout << "insert()" <<endl;
        
        //删除指定位置元素
        c1.erase(c1.begin()+3);
        for (auto i: c1) {
            cout<< i << ",";
        }
        cout << "erase()" <<endl;
    
        //清空deque
        c.clear();
        for (auto i: c) {
            cout<< i << ",";
        }
        cout << "clear()" <<endl;
        
        //构造
        c1.emplace(c1.end(), 100);
        for (auto i: c1) {
            cout<< i << ",";
        }
        cout << "emplace()" <<endl;
        
        //头位置插入元素
        c1.emplace_front(111);
        for (auto i: c1) {
            cout<< i << ",";
        }
        cout << "emplace_front()" <<endl;
        
        //尾位置插入元素
        c1.emplace_back(111);
        for (auto i: c1) {
            cout<< i << ",";
        }
        cout << "emplace_back()" <<endl;
        
        //交换
        c.swap(c1);
        for (auto i: c) {
            cout<< i << ",";
        }
        cout << "swap()" <<endl;
        
        int tmp;
        tmp = c.front();
        cout<<"第一个元素"<< tmp << endl;
        
        tmp = c.back();
        cout<<"最后一个元素"<< tmp << endl;
        
        tmp = c.at(1);
        cout<<"指定下标元素"<< tmp << endl;
        
        tmp = c[1];
        cout<<"指定[]下标元素"<< tmp << endl;
    
        return 0;
    }
    

    内存

    int main()
    {
        deque<int> c = {1,2,3,4,5};
        
        //元素个数
        cout<< "size(): " << c.size() <<endl;
        
        //重新设定deque大小 少退多补
        c.resize(10, 5);
        for(auto i : c)
        {
            cout << i <<",";
        }
        cout << "resize()" << endl;
        
        //最大容量
        cout << "max_size(): " << c.max_size() <<endl;
        
        //是否为空
        cout << "empty: " << c.empty() << endl;
        
        //清空内存
        c.shrink_to_fit();
        
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:deque

          本文链接:https://www.haomeiwen.com/subject/gsyftctx.html