#include <iostream>
#include<algorithm>
#include<list>
using namespace std;
struct Node
{
int a;
char c;
};
void fun(Node& d)
{
cout << d.a << " " << d.c << endl;
}
void ListDefine()//list双向链表,比单向链表多了一个指向前方的指针,随机访问慢,支持下标,支持快速插入和删除。
{
//list <int> db;//参数列表:1、容器的数据类型。2、类型的种类,<>内可以包括结构体,基本数据类型,指针,对象。
//list <Node> db(5);
// 赋值
Node no = {12, 'a'};
list<Node> db1(6, no);//设置给一个构造函数赋值,然后将这个值复制给db1对象的6个空间。
//list<Node> db2(db1.begin(), db1.end());
//迭代器
list<Node>::iterator ite = db1.begin();
ite++;
ite++;
list<Node> db2(ite, db1.end());
//ite + 2; 不允许这样操作。可以ite++。
//输出
//for_each(db1.begin(), db1.end(), fun);
for_each(db2.begin(), db2.end(), fun);
//for_each(db.begin(), db.end(), fun);
}
void ListSize()
{
Node no = { 12, 'a' };
list<Node> db1(6, no);
cout << db1.size() << endl;
cout << db1.empty() << endl;// 对象是否有元素。有元素返回为0,没有元素返回为1。
for_each(db1.begin(), db1.end(), fun);
db1.resize(3);//重新设置元素个数,容量不变。
//db1.resize(0);//重新设置元素个数,容量不变。
cout << db1.size() << endl;
cout << db1.empty() << endl;
for_each(db1.begin(), db1.end(), fun);
}
int main()
{
//ListDefine();
ListSize();
system("pause");
return 0;
}