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 }
让数据变得更安全!
原文地址:https://www.cnblogs.com/Alyoyojie/p/5145709.html