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 }
    让数据变得更安全!
  • 相关阅读:
    Python入门-函数进阶
    Python入门-初始函数
    Leetcode300. Longest Increasing Subsequence最长上升子序列
    Leetcode139. Word Break单词拆分
    Leetcode279. Perfect Squares完全平方数
    Leetcode319. Bulb Switcher灯泡开关
    Leetcode322. Coin Change零钱兑换
    二叉树三种遍历两种方法(递归和迭代)
    Leetcode145. Binary Tree Postorder Traversal二叉树的后序遍历
    Leetcode515. Find Largest Value in Each Tree Row在每个树行中找最大值
  • 原文地址:https://www.cnblogs.com/Alyoyojie/p/5145709.html
Copyright © 2011-2022 走看看