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 }
    让数据变得更安全!
  • 相关阅读:
    from import 的认识
    模块初识
    eq方法
    hash介绍
    item系列
    析构函数
    serializers进阶
    APIView源码解析
    RPC协议
    面试题补充
  • 原文地址:https://www.cnblogs.com/Alyoyojie/p/5145709.html
Copyright © 2011-2022 走看看