zoukankan
html css js c++ java
c++中的list用法[转]
#include
<
iostream
>
#include
<
list
>
#include
<
numeric
>
#include
<
algorithm
>
using
namespace
std;
//
创建一个list容器的实例LISTINT
typedef list
<
int
>
LISTINT;
//
创建一个list容器的实例LISTCHAR
typedef list
<
int
>
LISTCHAR;
void
main(
void
)
{
//
--------------------------
//
用list容器处理整型数据
//
--------------------------
//
用LISTINT创建一个名为listOne的list对象
LISTINT listOne;
//
声明i为迭代器
LISTINT::iterator i;
//
从前面向listOne容器中添加数据
listOne.push_front (
2
);
listOne.push_front (
1
);
//
从后面向listOne容器中添加数据
listOne.push_back (
3
);
listOne.push_back (
4
);
//
从前向后显示listOne中的数据
cout
<<
"
listOne.begin()--- listOne.end():
"
<<
endl;
for
(i
=
listOne.begin(); i
!=
listOne.end();
++
i)
cout
<<
*
i
<<
"
"
;
cout
<<
endl;
//
从后向后显示listOne中的数据
LISTINT::reverse_iterator ir;
cout
<<
"
listOne.rbegin()---listOne.rend():
"
<<
endl;
for
(ir
=
listOne.rbegin(); ir
!=
listOne.rend();ir
++
)
{
cout
<<
*
ir
<<
"
"
;
}
cout
<<
endl;
//
使用STL的accumulate(累加)算法
int
result
=
accumulate(listOne.begin(), listOne.end(),
0
);
cout
<<
"
Sum=
"
<<
result
<<
endl;
cout
<<
"
------------------
"
<<
endl;
//
--------------------------
//
用list容器处理字符型数据
//
--------------------------
//
用LISTCHAR创建一个名为listOne的list对象
LISTCHAR listTwo;
//
声明i为迭代器
LISTCHAR::iterator j;
//
从前面向listTwo容器中添加数据
listTwo.push_front (
'
A
'
);
listTwo.push_front (
'
B
'
);
//
从后面向listTwo容器中添加数据
listTwo.push_back (
'
x
'
);
listTwo.push_back (
'
y
'
);
//
从前向后显示listTwo中的数据
cout
<<
"
listTwo.begin()---listTwo.end():
"
<<
endl;
for
(j
=
listTwo.begin(); j
!=
listTwo.end();
++
j)
cout
<<
char
(
*
j)
<<
"
"
;
cout
<<
endl;
//
使用STL的max_element算法求listTwo中的最大元素并显示
j
=
max_element(listTwo.begin(),listTwo.end());
cout
<<
"
The maximum element in listTwo is:
"
<<
char
(
*
j)
<<
endl;
}
#include
<
iostream
>
#include
<
list
>
using
namespace
std;
typedef list
<
int
>
INTLIST;
//
从前向后显示list队列的全部元素
void
put_list(INTLIST list,
char
*
name)
{
INTLIST::iterator plist;
cout
<<
"
The contents of
"
<<
name
<<
"
:
"
;
for
(plist
=
list.begin(); plist
!=
list.end(); plist
++
)
cout
<<
*
plist
<<
"
"
;
cout
<<
endl;
}
//
测试list容器的功能
void
main(
void
)
{
//
list1对象初始为空
INTLIST list1;
//
list2对象最初有10个值为6的元素
INTLIST list2(
10
,
6
);
//
list3对象最初有3个值为6的元素
INTLIST list3(list2.begin(),
--
list2.end());
//
声明一个名为i的双向迭代器
INTLIST::iterator i;
//
从前向后显示各list对象的元素
put_list(list1,
"
list1
"
);
put_list(list2,
"
list2
"
);
put_list(list3,
"
list3
"
);
//
从list1序列后面添加两个元素
list1.push_back(
2
);
list1.push_back(
4
);
cout
<<
"
list1.push_back(2) and list1.push_back(4):
"
<<
endl;
put_list(list1,
"
list1
"
);
//
从list1序列前面添加两个元素
list1.push_front(
5
);
list1.push_front(
7
);
cout
<<
"
list1.push_front(5) and list1.push_front(7):
"
<<
endl;
put_list(list1,
"
list1
"
);
//
在list1序列中间插入数据
list1.insert(
++
list1.begin(),
3
,
9
);
cout
<<
"
list1.insert(list1.begin()+1,3,9):
"
<<
endl;
put_list(list1,
"
list1
"
);
//
测试引用类函数
cout
<<
"
list1.front()=
"
<<
list1.front()
<<
endl;
cout
<<
"
list1.back()=
"
<<
list1.back()
<<
endl;
//
从list1序列的前后各移去一个元素
list1.pop_front();
list1.pop_back();
cout
<<
"
list1.pop_front() and list1.pop_back():
"
<<
endl;
put_list(list1,
"
list1
"
);
//
清除list1中的第2个元素
list1.erase(
++
list1.begin());
cout
<<
"
list1.erase(++list1.begin()):
"
<<
endl;
put_list(list1,
"
list1
"
);
//
对list2赋值并显示
list2.assign(
8
,
1
);
cout
<<
"
list2.assign(8,1):
"
<<
endl;
put_list(list2,
"
list2
"
);
//
显示序列的状态信息
cout
<<
"
list1.max_size():
"
<<
list1.max_size()
<<
endl;
cout
<<
"
list1.size():
"
<<
list1.size()
<<
endl;
cout
<<
"
list1.empty():
"
<<
list1.empty()
<<
endl;
//
list序列容器的运算
put_list(list1,
"
list1
"
);
put_list(list3,
"
list3
"
);
cout
<<
"
list1>list3:
"
<<
(list1
>
list3)
<<
endl;
cout
<<
"
list1<list3:
"
<<
(list1
<
list3)
<<
endl;
//
对list1容器排序
list1.sort();
put_list(list1,
"
list1
"
);
//
结合处理
list1.splice(
++
list1.begin(), list3);
put_list(list1,
"
list1
"
);
put_list(list3,
"
list3
"
);
}
查看全文
相关阅读:
科大奥瑞大物实验-A类不确定度计算器 代码
在手机和电脑间双向加密传输文件 —— Windows 安装 Kde Connect
Leetcode 寻找两个有序数组的中位数
树莓派3B安装 Arch Linux ARM
从零开始编译安装 Extcalc
Oracle, PostgreSQl, MySQL针对INSERT时可能唯一键重复的SQL
如何从Oracle, MySql, PostgreSQL的PreparedStatement获得所执行的sql语句?
PostgreSQL报错:当前事务被终止,命令被忽略,直到事务块结束
PostgreSQL对GROUP BY子句使用常量的特殊限制
一种用JDBC实现批量查询的巧妙方法
原文地址:https://www.cnblogs.com/rooney/p/2597012.html
最新文章
vue+elementUI开发过程常用方法封装
微信小程序在ios下时间戳转换失败
微信小程序 动态修改数组数据方法
webpack下,项目打包再window下和linux下对路径大小写法处理不一样
阿里巴巴IconFont的图标的下载使用
mysql 获取数据库所有表名及获取字段名称
java Map集合遍历取值的五种方式
Python实现AI换脸功能
python运行的时候报错line 192, in _run_module_as_main return _run_code(code, main_globals, None,
java entity转js的json对象
热门文章
解决idea连接mysql连接失败Could not create connection to database server. Attempted reconnect 3 times. Giving up.
CentOS 7上安装Munin监控 ntopng安装
解决hibernate项目添加集成jpa使用EntityManager时报错No qualifying bean of type 'javax.persistence.EntityManagerFactory' available: expected single matching bean but found 2: sessionFactory,entityManagerFactory
jpa could not initialize proxy [com.modelname#1]
jpa 分页查询几种demo Example分页/ExampleMatcher/Specification分页/SQL分页
Gitea服务搭建指南
面试题 C/C++
SDUST 小学期飞机大战讲解
Kdenlive简明教程-字幕
编译安装 codeblocks 20.03 mips64el
Copyright © 2011-2022 走看看