zoukankan      html  css  js  c++  java
  • list练习小例子

     1 //双向链表list的使用
     2 //高效插入删除,若只是尾部插入删除元素,优先考虑vector
     3 //若仅于头尾两端增删元素,优先考虑deque
     4 #include "stdafx.h"
     5 #include<iostream>
     6 #include<list>            //使用list之前,必须包含头文件
     7 using std::list;          //使用List之前,需要声明list命名空间
     8 //list<int> c0;空链表
     9 //list<int> c1(3);建立一个含三个默认值是0的元素的链表
    10 //list<int> c2(5,2);建立一个含五个元素的链表,默认值为2
    11 //list<int> c4(c2);建立一个c2的copy链表
    12 //list<int> c5(c1.begin(),c1.end());c5含c1一个区域的元素[First,last]
    13 int _tmain(int argc, _TCHAR* argv[])
    14 {
    15     list<int> listObj{ 1, 2, 3, 4, 5 };
    16     list<int>::iterator it;
    17     //遍历链表
    18     for (it = listObj.begin(); it != listObj.end(); it++){
    19         std::cout << *it << "	";
    20     }
    21     std::cout << std::endl;
    22     //链表插入
    23     std::cout << "insert before:";
    24     for (it = listObj.begin(); it != listObj.end(); it++){
    25         std::cout << *it << " ";
    26     }
    27     std::cout << std::endl;
    28     //传入位置和插入值为参数
    29     listObj.insert(listObj.begin(), 0);
    30     std::cout << "insert(pos,m) after:";
    31     for (it = listObj.begin(); it != listObj.end(); it++){
    32         std::cout << *it << " ";
    33     }
    34     std::cout << std::endl;
    35     //第一个参数为插入位置,第二个为插入的的个数,第三个为插入的值
    36     listObj.insert(listObj.begin(), 2, 88);
    37     std::cout << "insert(pos,n,m) after:";
    38     for (it = listObj.begin(); it != listObj.end(); it++){
    39         std::cout << *it << " ";
    40     }
    41     std::cout << std::endl;
    42     //第一个参数为插入起始位置,第二个为要插入的指针,第三个为结束位置
    43     int arr[5] = { 11, 22, 33, 44, 55 };
    44     listObj.insert(listObj.begin(), arr, arr + 3);
    45     std::cout << "insert(pos,beg,end) after:";
    46     for (it = listObj.begin(); it != listObj.end(); it++){
    47         std::cout << *it << " ";
    48     }
    49     std::cout <<std::endl;
    50     //链表的删除
    51     std::cout << " erase before:";
    52     for (it = listObj.begin(); it != listObj.end(); it++){
    53         std::cout << *it << " ";
    54     }
    55     std::cout <<std::endl;
    56     //传入一个位置参数
    57     listObj.erase(listObj.begin());
    58     std::cout << "erase after:";
    59     for (it = listObj.begin(); it != listObj.end(); it++){
    60         std::cout << *it << " ";
    61     }
    62     std::cout << std::endl;
    63     system("pause");
    64     return 0;
    65 }
    让数据变得更安全!
  • 相关阅读:
    《高效能人士的七个习惯》读书笔记
    《精进》读书摘要
    讲述测试自己的故事
    搭建项目自动化框架的搭建、改进与思考
    真是个信息爆炸的世界
    C#中的WebBrowser控件的使用
    C#动态调用webService出现 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。
    C#抓取网面上的html内容(JS动态生成的无法抓取)
    SQL还原数据库后,数据库显示受限制用户解决方法
    [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
  • 原文地址:https://www.cnblogs.com/Alyoyojie/p/5145709.html
Copyright © 2011-2022 走看看