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
"
);
}
查看全文
相关阅读:
iframe上下传递对象方法
Chrome Console 基本调试方法
javascript 获取div长度和宽度
Python with语句用法
KVM -> 虚拟机在线热添加技术_04
查看系统日志的实用操作
2018-11-3& maven
Gitlab & Github
Git详解
Jenkins与代码上线解决方案
原文地址:https://www.cnblogs.com/rooney/p/2597012.html
最新文章
centos7下pymysql安装
Python文件操作
各种基础类型的转换
分布式系统原理与范型 - 电子支付系统
jupyter notebook(三)——IOPub_data_rate_limit报错
博客园定制页面(四)——WindowsLiveWriter客户端及插件详解
jupyter notebook(二)——修改jupyter打开默认的工作目录
jupyter notebook(一)——anaconda安装后jupyter不能自动跳转网页
博客园定制页面(三)——博客右上角Fork me on GitHub设置
Python读取内容UnicodeDecodeError错误
热门文章
博客园定制页面(二)——博客主题/主页设置(CSS)
ccf 201803-4 棋局评估(Python实现)
ccf 201712-4 行车路线(Python实现)
ccf 201712-3 Crontab(Python实现)
使用selenium做简单爬虫的实例
phantomjs 抓取搜狗相关搜索的例子
Python获取一个字符串所有连续子串
Python MySQL OperationalError: (1054, "Unknown column 'XX' in 'where clause'")
什么是AS号
CheckIO 题目解法(3)
Copyright © 2011-2022 走看看