STL deque的一些函数练习

来源:互联网 发布:淘宝黑号是什么意思 编辑:程序博客网 时间:2024/06/03 21:08
#include <iostream>#include<deque>#include<vector>using namespace std;#if 0int main(){/************************************************************************    //deque构造函数//    default (1) explicit deque (const allocator_type& alloc = allocator_type());//    fill    (2) explicit deque (size_type n, const value_type& val = value_type(),//                const allocator_type& alloc = allocator_type());//    range   (3) template <class InputIterator>//        deque (InputIterator first, InputIterator last,//                const allocator_type& alloc = allocator_type());//    copy    (4) deque (const deque& x);    deque<int> first;//构造空的双端队列的int类型    deque<int> second (4,100);  //构造int类型的4个100    deque<int> third (second.begin(),second.end()-1);//用一个对象的一段去构造    deque<int> fourth (third);///用一个对象去构造    int myints[] = {16,2,77,29};    deque<int> fifth (myints, myints + sizeof(myints) / sizeof(int) );//用一个数组去构造****************************************************************//***********************************************************//    deque::assign()函数//    range (1)   template <class InputIterator>//                    void assign (InputIterator first, InputIterator last);////    fill  (2)   void assign (size_type n, const value_type& val);    //assign()函数就是从新初始化容器中的元素。    deque<int> first;    deque<int> second;    deque<int> third;    first.assign (7,100);//first中有7个100    deque<int>::iterator it;    it=first.begin()+1;    second.assign (it,first.end()-1);//second中有5个100    int myints[] = {1776,7,4};    third.assign (myints,myints+3);//把数组mymints放到third容器中。    it=third.begin();    while(it!=third.end())        cout<<*it++<<" ";    //输出结果:1776 7 4*************************************************/    return 0;}#endif#if 0int main(){/*********************************************//    deque::at()函数://    reference at (size_type n);//    const_reference at (size_type n) const;    deque<unsigned> mydeque (10);//初始化为10个0    for (unsigned i=0; i<mydeque.size(); i++)        mydeque.at(i)=i;    for (unsigned i=0; i<mydeque.size(); i++)        cout << ' ' << mydeque.at(i);//    输出结果: 0 1 2 3 4 5 6 7 8 9***********************************************//**********************************************//    deque::back()函数://    reference back();//    const_reference back() const;    deque<int> mydeque;    mydeque.push_back(10);//末尾加入一个元素    while (mydeque.back() != 0) //返回末尾这个元素        mydeque.push_back ( mydeque.back() -1 );    for (deque<int>::iterator it = mydeque.begin(); it!=mydeque.end(); ++it)//通过迭代器访问容器中的元素        cout << ' ' << *it;//    输出结果: 10 9 8 7 6 5 4 3 2 1 0*************************************************//******************************************//    deque::clear()函数://    void clear();    deque<int> mydeque;    mydeque.push_back (100);    mydeque.push_back (200);    mydeque.push_back (300);    for (deque<int>::iterator it = mydeque.begin(); it!=mydeque.end(); ++it)        cout << ' ' << *it;    cout << '\n';//    输出结果:100 200 300    mydeque.clear();//清空容器中的元素    cout<<mydeque.size()<<endl;//输出0********************************************/ /*********************************   //    deque::empty()函数://    bool empty() const;    deque<int> mydeque;    mydeque.empty();//判断容器是否为空,为空返回true,不空返回false***********************************/    return 0;}#endif#if 0int main(){/*********************************************************************//    deque的erase()函数://    iterator erase (iterator position);//    iterator erase (iterator first, iterator last);    deque<int> mydeque;    for (int i=1; i<=10; i++)        mydeque.push_back(i);//尾部插入元素    mydeque.erase (mydeque.begin()+5);//删除指定ierator的元素    mydeque.erase (mydeque.begin(),mydeque.begin()+3);//删除一段数据***********************************************************************//***************************************//    deque::front()://    reference front();//    const_reference front() const;    deque<int> mydeque;    mydeque.push_front(2);//头部插入元素    mydeque.push_front(10);    cout<<mydeque.front();//输出10**************************************///    deque::insert()函数://    (1)iterator insert (iterator position, const value_type& val);//    (2)void insert (iterator position, size_type n, const value_type& val);//    (3)template <class InputIterator>//        void insert (iterator position, InputIterator first, InputIterator last);    deque<int> mydeque;    for (int i=1; i<6; i++) // 1 2 3 4 5        mydeque.push_back(i);    deque<int>::iterator it = mydeque.begin();    ++it;    it = mydeque.insert (it,10);//在it位置插入10.现在容器中元素是 1 10 2 3 4 5    mydeque.insert (it,2,20);//在it位置插入2个20,现在容器中元素是1 20 20 10 2 3 4 5    it = mydeque.begin()+2;    vector<int> myvector (2,30);    mydeque.insert (it,myvector.begin(),myvector.end());//现在容器中元素是 1 20 30 30 20 10 2 3 4 5    for (deque<int>::iterator it = mydeque.begin(); it!=mydeque.end(); ++it)        cout << ' ' << *it;    return 0;}#endif // 1

deque函数的用法和vector基本类似,因此只是写了一点

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 组织一个演讲 你怎么办 跑步把腿跑粗了怎么办 跑步跑出肌肉腿怎么办 班级聚会人不齐怎么办 如果我们分手了怎么办 幼儿园课上完了怎么办 第一次上台唱歌紧张怎么办 第一次当主持人紧张怎么办 主持的时候口吃怎么办 打官司公司改规章制度怎么办 怎么办生日派对比较好 考不过科目一怎么办 卫校毕业证丢了怎么办 不小心摔跤了怎么办 篮球打气口漏气怎么办 手机麦有回音怎么办 obs直播有杂音怎么办 耳机会有回音怎么办 眼睛看东西散光怎么办 一只眼睛红肿怎么办 幼儿精力不集中怎么办 孕妇照四维说头大怎么办 孕晚期贫血严重怎么办 孕期肚子胀气难受怎么办 结婚三月没怀孕怎么办 在小龙武校病了怎么办 地下厨房太闷热怎么办 菜刀刀背磨手怎么办 养热水鱼冬天怎么办 冬天没热水洗澡怎么办 饭店厨房太热怎么办 餐厅厨房太热怎么办 有人在超市大便怎么办 家里有神经病人怎么办 家有神经病人怎么办 拍拍贷恶意催收怎么办? 拍拍贷爆通讯录怎么办 拍拍贷还款不了怎么办 信用卡欠款收到律师函怎么办 练瑜伽拉伤肌肉怎么办 瑜伽球漏气了怎么办