#include <list>

clear();删除向量中的所有对象

erase(iterator it);删除it所指向的容器对象

insert(iterator it,const T&);向it所指的向量位置前插入一个对象

push_back(const T&);向向量尾部插入一个对象

push_front(const T&);向向量头部插入一个对象

remove(const T&);删除特定的对象

sort();排序

unique();唯一。把链表中前后有相同元素的结点删除

 1 #include <iostream>
 2 #include <list>
 3
 4 void main()
 5 {
 6     std::list<int>mylist;
 7
 8     mylist.push_back(1);//向向量尾部插入一个对象
 9     mylist.push_back(2);
10     mylist.push_back(3);
11     mylist.push_back(4);
12
13     auto ibegin = mylist.begin();//迭代器
14     auto iend = mylist.end();
15
16     for (; ibegin != iend; ibegin++)//使用迭代器进行遍历
17     {
18         std::cout << *ibegin << std::endl;
19     }
20 }

对特定元素进行删除,erase实现,先查找,后删除

 1 #include <iostream>
 2 #include <list>
 3
 4 void main()
 5 {
 6     std::list<int>mylist;
 7
 8     mylist.push_back(1);//向向量尾部插入一个对象
 9     mylist.push_back(2);
10     mylist.push_back(3);
11     mylist.push_back(4);
12
13     auto ibegin = mylist.begin();//迭代器
14     auto iend = mylist.end();
15
16     for (; ibegin != iend; ibegin++)//使用迭代器进行遍历
17     {
18         if (*ibegin == 3)
19         {
20             mylist.erase(ibegin);
21             break;//删除以后,一定要break,因为ibegin已经变更了
22         }
23     }
24
25     ibegin = mylist.begin();//迭代器
26     iend = mylist.end();
27
28     for (; ibegin != iend; ibegin++)//使用迭代器进行遍历
29     {
30         std::cout << *ibegin << std::endl;
31     }
32 }

对特定元素进行删除,remove实现,先查找,后删除

 1 #include <iostream>
 2 #include <list>
 3
 4 void main()
 5 {
 6     int a[5] = { 1,2,3,4,5 };
 7     std::list<int>mylist(a, a + 5);
 8
 9     mylist.push_front(12);//向向量头部插入一个对象
10
11     auto ibegin = mylist.begin();//迭代器
12     auto iend = mylist.end();
13
14     mylist.remove(3);
15
16     for (; ibegin != iend; ibegin++)//使用迭代器进行遍历
17     {
18         std::cout << *ibegin << std::endl;
19     }
20 }

在特定元素前插入新的元素,先查找,后插入

 1 #include <iostream>
 2 #include <list>
 3
 4 void main()
 5 {
 6     int a[5] = { 1,2,3,4,5 };
 7     std::list<int>mylist(a, a + 5);
 8
 9     mylist.push_front(12);//向向量头部插入一个对象
10
11     auto ibegin = mylist.begin();//迭代器
12     auto iend = mylist.end();
13
14     for (; ibegin != iend; ibegin++)//使用迭代器进行遍历
15     {
16         if (*ibegin == 3)
17         {
18             mylist.insert(ibegin, 30);
19             break;
20         }
21     }
22
23     ibegin = mylist.begin();//迭代器
24     iend = mylist.end();
25
26     for (; ibegin != iend; ibegin++)//使用迭代器进行遍历
27     {
28         std::cout << *ibegin << std::endl;
29     }
30 }

使用反向迭代器进行遍历

 1 #include <iostream>
 2 #include <list>
 3
 4 void main()
 5 {
 6     int a[5] = { 1,2,3,4,5 };
 7     std::list<int>mylist(a, a + 5);
 8
 9     auto rb = mylist.rbegin();//反向迭代器
10     auto re = mylist.rend();
11
12     for (; rb != re; rb++)//使用迭代器进行遍历
13     {
14         std::cout << *rb << std::endl;
15     }
16 }

两个链表进行合并

必须先排序,后合并,否则会出错

 1 #include <iostream>
 2 #include <list>
 3
 4 void main()
 5 {
 6     int a[5] = { 1,2,3,104,5 };
 7     std::list<int>mylist1(a, a + 5);
 8
 9     int b[5] = { 11,22,33,44,55 };
10     std::list<int>mylist2(b, b + 5);
11
12     mylist1.sort();//排序
13     mylist2.sort();
14
15     mylist1.merge(mylist2);//合并。必须先排序,后合并,否则会出错
16
17     auto ibegin = mylist1.begin();//迭代器
18     auto iend = mylist1.end();
19
20     for (; ibegin != iend; ibegin++)//使用迭代器进行遍历
21     {
22         std::cout << *ibegin << std::endl;
23     }
24 }

链表元素的唯一

必须先排序,后唯一

 1 #include <iostream>
 2 #include <list>
 3
 4 void main()
 5 {
 6     int a[6] = { 1,2,98,104,5,98 };
 7     std::list<int>mylist1(a, a + 6);
 8
 9     mylist1.sort();//排序
10     mylist1.unique();//唯一。必须先排序,后唯一
11
12     auto ibegin = mylist1.begin();//迭代器
13     auto iend = mylist1.end();
14
15     for (; ibegin != iend; ibegin++)//使用迭代器进行遍历
16     {
17         std::cout << *ibegin << std::endl;
18     }
19 }
时间: 08-05

#include <list>的相关文章

《linux 内核全然剖析》 include/asm/io.h

include/asm/io.h #define outb(value,port) __asm__ ("outb %%al,%%dx"::"a" (value),"d" (port)) //宏定义outb用汇编实现了在端口地址port处写入值value //使用的寄存器是al,一个byte长度,而端口port使用的是2byte长度地址来标记的寄存器,注意这里寄存器的使用 #define inb(port) ({ unsigned char _v;

php include require

includ和require都是把其他页面加载当前页面,不过不同的是,require如果没有找到,或者所包含的页面里面有错误就不会往下执行了 <?php include 'form.php'; require 'aasdfa.php'; ?> form.php 存在所以没有问题 aasdfa.php没有所以报错了 Warning: require(aasdfa.php): failed to open stream: No such file or directory in D:\phpStu

php include include_once require require_once 的区别与联系

一.require 与 include 的区别: The require() function is identical to include(), except that it handles errors differently. If an error occurs, the include() function generates a warning, but the script will continue execution. The require() generates a fa

jsp:include怎么设置才能正确显示包含的页面呢

1.项目的所有jsp都放在WEB-INF文件夹之下,使用的是SpirngMVC进行了过滤,jsp:include只能引入WEB-INF外部的jsp文件,对于改变后缀显示为htm的jsp的WEB-INF下的文件,是访问不到的.2.使用jstl的c:import标签就可以很好的解决这个问题,c标签引入的是处理后的结果.

关于php include变量作用域的说明

作者:zhanhailiang 日期:2015-04-17 首先,请阅读include,其中重点说明了"include所包含的代码继承了 include 所在行的变量范围": 当一个文件被包含时,其中所包含的代码继承了 include 所在行的变量范围.从该处开始,调用文件在该行处可用的任何变量在被调用的文件中也都可用.不过所有在包含文件中定义的函数和类都具有全局作用域. 这意味着,include里的代码可以访问到所在行处能访问到的所有相关变量. 如下,我将编写test.php tes

include指令和include动作的区别

include指令和include动作的区别 1.include指令 include可以在JSP页面转换成Servlet之前,将JSP代码插入其中.它的主要优点是功能强大,所包含的代码可以含有总体上影响主页面的JSP构造,比如属性.方法的定义和文档类型的设定.它的缺点是难于维护只要被包含的页面发生更改,就得更改主页面,这是因为主页面不会自动地查看被包含的页面是否发生更改. include指令的语法格式如下: <%@ include file="Relative Url"%>

include指令和动作的区别

include指令:用于包含一个文本或代码的文件.称为文件加载指令,可以将其他的文件插入JSP网页.功能:该指令标签作用是在该标签的位置处,静态插入一个文件. include动作:动态包含一个文件,即将当前JSP页面,被包含的文件各自独立编译为字节码文件.当执行到该动作标签处,才加载执行被包含文件的字节码. 总而言之,他两的区别就是:是两种不同的包含,程序的执行性质是完全不同的,一个是静态包含,一个是动态包含,静态包含不能传递参数,但动态包含可以在两文件之间传递参数.

JSP中include指令和include动作的区别

include指令是编译阶段的指令,即include所包含的文件的内容是编译的时候插入到JSP文件中,JSP引擎在判断JSP页面未被修改,否则视为已被修改.由于被包含的文件是在编译时才插入的,因此如果只修改了include文件内容,而没有对JSP修改,得到的结构将不会改变,所以直接执行已经存在的字节码文件,而没有重新编译.因此对不经常变化的内容,用include指令是合适的,如果需要的内容是经常变化的,则需要动作元素<jsp:include>.下面将详细区分他们之间的不同 1.include指

个人理解request.getRequestDispatcher()的两个方法forward()/include()。哪里错了,还麻烦各位提醒!

首先,解释一下request.getRequestDispatcher(String arg0)是"转向"的意思,跟response.sendRedirect(String arg0)重定向是不一样的; 1..request.getRequestDispatcher(String arg0)---转向的特点: 1.1.地址栏的URl是不变,如:servlet --A转向到servlet--- B的时候,地址栏还是 A它本身,但是内容其实上已经是B的内容了. 2..response.se

include 指令与include 动作的区别

include指令称为文件加载指令,可以将其他文件插入jsp网页,被插入的文件必须保证插入后形成的新文件符合jsp页面的语法规则.其功能:该指令标签作用是在该标签的位置处,静态插入一个文件. include动作 起作用是在页面得到请求时动态包含一个文件 功能:当前jsp页面动态包含一个文件,即将当前jsp页面.被包含的文件各自独立编译为字节码文件.当执行到该动态标签处,才加载执行被包含文件的字节码.