zoukankan      html  css  js  c++  java
  • #include <list>

    clear();删除向量中的所有对象

    erase(iterator it);删除it所指向的容器对象

    insert(iterator it,const T&);向it所指的向量位置前插入一个对象

    push_back(const T&);向向量尾部插入一个对象

    push_front(const T&);向向量头部插入一个对象

    remove(const T&);删除特定的对象

    sort();排序

    unique();唯一。把链表中前后有相同元素的结点删除

     1 #include <iostream>
     2 #include <list>
     3 
     4 void main()
     5 {
     6     std::list<int>mylist;
     7     
     8     mylist.push_back(1);//向向量尾部插入一个对象
     9     mylist.push_back(2);
    10     mylist.push_back(3);
    11     mylist.push_back(4);
    12 
    13     auto ibegin = mylist.begin();//迭代器
    14     auto iend = mylist.end();
    15 
    16     for (; ibegin != iend; ibegin++)//使用迭代器进行遍历
    17     {
    18         std::cout << *ibegin << std::endl;
    19     }
    20 }

    对特定元素进行删除,erase实现,先查找,后删除

     1 #include <iostream>
     2 #include <list>
     3 
     4 void main()
     5 {
     6     std::list<int>mylist;
     7     
     8     mylist.push_back(1);//向向量尾部插入一个对象
     9     mylist.push_back(2);
    10     mylist.push_back(3);
    11     mylist.push_back(4);
    12 
    13     auto ibegin = mylist.begin();//迭代器
    14     auto iend = mylist.end();
    15 
    16     for (; ibegin != iend; ibegin++)//使用迭代器进行遍历
    17     {
    18         if (*ibegin == 3)
    19         {
    20             mylist.erase(ibegin);
    21             break;//删除以后,一定要break,因为ibegin已经变更了
    22         }
    23     }
    24 
    25     ibegin = mylist.begin();//迭代器
    26     iend = mylist.end();
    27     
    28     for (; ibegin != iend; ibegin++)//使用迭代器进行遍历
    29     {
    30         std::cout << *ibegin << std::endl;
    31     }
    32 }

    对特定元素进行删除,remove实现,先查找,后删除

     1 #include <iostream>
     2 #include <list>
     3 
     4 void main()
     5 {
     6     int a[5] = { 1,2,3,4,5 };
     7     std::list<int>mylist(a, a + 5);
     8     
     9     mylist.push_front(12);//向向量头部插入一个对象
    10 
    11     auto ibegin = mylist.begin();//迭代器
    12     auto iend = mylist.end();
    13     
    14     mylist.remove(3);
    15 
    16     for (; ibegin != iend; ibegin++)//使用迭代器进行遍历
    17     {
    18         std::cout << *ibegin << std::endl;
    19     }
    20 }

    在特定元素前插入新的元素,先查找,后插入

     1 #include <iostream>
     2 #include <list>
     3 
     4 void main()
     5 {
     6     int a[5] = { 1,2,3,4,5 };
     7     std::list<int>mylist(a, a + 5);
     8     
     9     mylist.push_front(12);//向向量头部插入一个对象
    10 
    11     auto ibegin = mylist.begin();//迭代器
    12     auto iend = mylist.end();
    13     
    14     for (; ibegin != iend; ibegin++)//使用迭代器进行遍历
    15     {
    16         if (*ibegin == 3)
    17         {
    18             mylist.insert(ibegin, 30);
    19             break;
    20         }
    21     }
    22 
    23     ibegin = mylist.begin();//迭代器
    24     iend = mylist.end();
    25 
    26     for (; ibegin != iend; ibegin++)//使用迭代器进行遍历
    27     {
    28         std::cout << *ibegin << std::endl;
    29     }
    30 }

    使用反向迭代器进行遍历

     1 #include <iostream>
     2 #include <list>
     3 
     4 void main()
     5 {
     6     int a[5] = { 1,2,3,4,5 };
     7     std::list<int>mylist(a, a + 5);
     8     
     9     auto rb = mylist.rbegin();//反向迭代器
    10     auto re = mylist.rend();
    11     
    12     for (; rb != re; rb++)//使用迭代器进行遍历
    13     {
    14         std::cout << *rb << std::endl;
    15     }
    16 }

    两个链表进行合并

    必须先排序,后合并,否则会出错

     1 #include <iostream>
     2 #include <list>
     3 
     4 void main()
     5 {
     6     int a[5] = { 1,2,3,104,5 };
     7     std::list<int>mylist1(a, a + 5);
     8 
     9     int b[5] = { 11,22,33,44,55 };
    10     std::list<int>mylist2(b, b + 5);
    11     
    12     mylist1.sort();//排序
    13     mylist2.sort();
    14 
    15     mylist1.merge(mylist2);//合并。必须先排序,后合并,否则会出错
    16 
    17     auto ibegin = mylist1.begin();//迭代器
    18     auto iend = mylist1.end();
    19     
    20     for (; ibegin != iend; ibegin++)//使用迭代器进行遍历
    21     {
    22         std::cout << *ibegin << std::endl;
    23     }
    24 }

    链表元素的唯一

    必须先排序,后唯一

     1 #include <iostream>
     2 #include <list>
     3 
     4 void main()
     5 {
     6     int a[6] = { 1,2,98,104,5,98 };
     7     std::list<int>mylist1(a, a + 6);
     8     
     9     mylist1.sort();//排序
    10     mylist1.unique();//唯一。必须先排序,后唯一
    11 
    12     auto ibegin = mylist1.begin();//迭代器
    13     auto iend = mylist1.end();
    14     
    15     for (; ibegin != iend; ibegin++)//使用迭代器进行遍历
    16     {
    17         std::cout << *ibegin << std::endl;
    18     }
    19 }
  • 相关阅读:
    用Fragment实现如新浪微博一样的底部菜单的切换
    Android基础之使用Fragment控制切换多个页面
    Android_Fragment_Fragment详解
    android下拉菜单spinner的使用方法
    eclipse / ADT(Android Develop Tool) 一些方便的初始设置
    Android Studio如何设置代码自动提示
    <交流贴>android语音识别之科大讯飞语音API的使用
    原 [Android]LIstView的HeaderView
    001 Java 深拷贝、浅拷贝及Cloneable接口
    GenericServlet与HttpServlet
  • 原文地址:https://www.cnblogs.com/denggelin/p/5745213.html
Copyright © 2011-2022 走看看