zoukankan      html  css  js  c++  java
  • List

      1 //我们可以象这样来定义一个STL的list:
      2 #include <string  3  #include <list> 
      4  int main (void) 
      5  { 
      6      list<string> Milkshakes; 
      7  return0; 
      8  }
      9  
     10  //使用list的成员函数push_back和push_front插入一个元素到list中:
     11 #include <string 12  #include <list> 
     13  int main (void) 
     14  { 
     15      list<string> Milkshakes; 
     16      Milkshakes.push_back("Chocolate"); 
     17     Milkshakes.push_back("Strawberry"); 
     18      Milkshakes.push_front("Lime"); 
     19      Milkshakes.push_front("Vanilla"); 
     20      return0; 
     21  }
     22  
     23  //用for循环来处理list中的元素 
     24 // 因为STL的list是以双链的list来实现的, 它不支持随机存取。vector和deque(向量和双端队列)和一些其他的STL的容器可以支持随机存取。 
     25 
     26 /* 
     27  || How to print the contents of a simple STL list. Whew! 
     28  */ 
     29  #include <iostream.h> 
     30  #include <string 31  #include <list> 
     32  int main (void) 
     33  { 
     34    list<string> Milkshakes; 
     35    list<string>::iterator MilkshakeIterator; 
     36    Milkshakes.push_back("Chocolate"); 
     37    Milkshakes.push_back("Strawberry"); 
     38    Milkshakes.push_front("Lime"); 
     39    Milkshakes.push_front("Vanilla"); 
     40    // print the milkshakes 
     41    Milkshakes.push_front("The Milkshake Menu"); 
     42    Milkshakes.push_back("*** Thats the end ***"); 
     43    for (MilkshakeIterator=Milkshakes.begin(); MilkshakeIterator!=Milkshakes.end(); ++MilkshakeIterator) 
     44    { 
     45      // dereference the iterator to get the element 
     46      cout << *MilkshakeIterator << endl; 
     47    } 
     48  }
     49  
     50  
     51  //用STL的通用算法for_each来处理list中的元素 
     52 //使用STL list和 iterator,我们要初始化、比较和给iterator增量来遍历这个容器。STL通用的for_each 算法能够减轻我们的工作。
     53 
     54   /* 
     55  || How to print a simple STL list MkII 
     56  */ 
     57  #include <iostream.h> 
     58  #include <string 59  #include <list> 
     60  #include <algorithm> 
     61  PrintIt (string& StringToPrint) { 
     62    cout << StringToPrint << endl; 
     63  } 
     64  int main (void) { 
     65    list<string> FruitAndVegetables; 
     66    FruitAndVegetables.push_back("carrot"); 
     67    FruitAndVegetables.push_back("pumpkin"); 
     68    FruitAndVegetables.push_back("potato"); 
     69    FruitAndVegetables.push_front("apple"); 
     70   FruitAndVegetables.push_front("pineapple"); 
     71    for_each (FruitAndVegetables.begin(), FruitAndVegetables.end(), PrintIt); 
     72  }
     73  
     74  
     75  //用STL的通用算法count()来统计list中的元素个数 
     76 //STL的通用算法count()和count_it()用来给容器中的对象记数。就象for_each()一样,count()和count_if() 算法也是在iterator范围内来做的。 
     77 //让我们在一个学生测验成绩的list中来数一数满分的个数。这是一个整型的List。
     78 /* 
     79  || How to count objects in an STL list 
     80  */ 
     81  #include <list> 
     82  #include <algorithm> 
     83  # 
     84  int main (void) 
     85  { 
     86    list<int> Scores; 
     87    # 
     88    Scores.push_back(100); Scores.push_back(80); 
     89    Scores.push_back(45); Scores.push_back(75); 
     90    Scores.push_back(99); Scores.push_back(100); 
     91    # 
     92    int NumberOf100Scores(0); 
     93    count (Scores.begin(), Scores.end(), 100, NumberOf100Scores); 
     94    # 
     95    cout << "There were " << NumberOf100Scores << " scores of 100" << endl; 
     96  }
     97  
     98  //用STL的通用算法count_if()来统计list中的元素个数 
     99 /* 
    100  || Using a function object to help count things 
    101  */ 
    102  #include <string103  #include <list> 
    104  #include <algorithm> 
    105  conststring ToothbrushCode("0003"); 
    106  class IsAToothbrush 
    107  { 
    108    public: 
    109      booloperator() ( string& SalesRecord ) 
    110      { 
    111        return SalesRecord.substr(0,4)==ToothbrushCode; 
    112      } 
    113  }; 
    114  int main (void) 
    115  { 
    116    list<string> SalesRecords; 
    117    SalesRecords.push_back("0001 Soap"); 
    118    SalesRecords.push_back("0002 Shampoo"); 
    119    SalesRecords.push_back("0003 Toothbrush"); 
    120    SalesRecords.push_back("0004 Toothpaste"); 
    121    SalesRecords.push_back("0003 Toothbrush"); 
    122    int NumberOfToothbrushes(0); 
    123    count_if (SalesRecords.begin(), SalesRecords.end(), 
    124    IsAToothbrush(), NumberOfToothbrushes); 
    125    cout << "There were " 
    126         << NumberOfToothbrushes 
    127       << " toothbrushes sold" << endl; 
    128  }
    129  
    130  
    131  
    132  
    133  
    134  //取出最后一个元素
    135     cout << "------------------------------------------------" << endl << "操作:取出最后一个元素" << endl;
    136     cout << lInt.back() << endl;
    137 
    138     //取出最前一个元素
    139     cout << "------------------------------------------------" << endl << "操作:取出最前一个元素" << endl;
    140     cout << lInt.front() << endl;
    141 
    142  
  • 相关阅读:
    SQLServer2008安装卡在publishing assembly information
    找新朋友
    如何解决:Android中 Error generating final archive: Debug Certificate 的错误
    Open your mind
    A+B Format (20)
    A+B
    1005. Spell It Right (20)
    如何彻底卸载 SQL SERVER
    VC快捷键
    C#之将数据导出到Excel
  • 原文地址:https://www.cnblogs.com/hxsyl/p/2677143.html
Copyright © 2011-2022 走看看