#include
#include
#include
using namespace std;
//typedef struct Node
//{
// int a;
// char c;
//}*_Node;
struct Node
{
int a;
char c;
Node(int d,char e)
{
a=d;
c=e; //CoutAdd
}
bool oprrator== (const Node& f) //remove
{
if (f.a ==this->a && f.c == this->c)
{
return true;
}
return false;
bool oprrator== (const Node& f) //sort,从大到小,>从小到大
{
if (f.a < this->a )
{
return true;
}
return false;
}
};
void fun(Node& d)
{
cout << d.a <<" "<<d.c << “\n”; //一列0,d前可强转int;
}
/*void Listsize()
{
list ls(5);
Node no =(12,'a');
list<Node> ls1(6,no);
cout << ls.size() <<endl; // 6
cout <<ls.empty() <<endl; // 0
for_each(ls.begin(),ls.end(),fun);
ls,resize(3);
cout << ls.size() <<endl; 个数大小变为3;3个12 a
for_each(ls.begin(),ls.end(),fun)
}*/
void ListDefine()
{
list ls(5);
Node no =(12,'a'); //内容
list<Node> ls1(6,no); //个数
list<Node>::iterator ite=ls2.begin();
ite++;
list <Node> ls2(ite,ls1.end());
// ite+2; //不可+2 自加相当于指针指向下一个
for_each(ls2.begin(),ls2.end(),fun)
}
void ListCoutAdd()
{
// Node no ={12,‘a’};
//list ls1(6,no);
/* for(list::iterator ite = ls.begin(); ite != ls.end();ite++)
{
cout << ite->a << " " << ite&c << endl; 和遍历输出结果一样;
}*/
// cout << ls.back().a << " " << ls.back().c << endl; // 12 a
// cout << ls.front().a << " " << ls.front().c << endl; // 12 a 12 a
list<Node> ls;
// Node no = (12,‘a’);
ls.push_front(Node(12,‘a’));
ls.push_front(Node(13,‘b’)); // 13 b 12 a
ls.push_back(Node(14,‘c’)); //13 b 12 a 14 c
list<Node>::iteator ite =ls.begin();
ite++; //指向13
ite++;
ls.insert(ite,Node(15,'d')); //13 b 12 a 15 d 14 c
ls.insert(ite,3,Node(16,'e')); //13 b 12 a 15 d 16 e 16 e 16 e 14 c
for_each(ls.begin(),ls.end(),fun);
}
void ListDeleteChange()
{
list ls;
ls.push_front(Node(12, 'a'));
ls.push_front(Node(13, 'b'));
ls.push_front(Node(14, 'c'));
ls.push_front(Node(15, 'd'));
ls.push_front(Node(15, 'd'));
ls.push_front(Node(16, 'e'));
// ls.pop_back(); //12没了
// ls.pop_front(); //16没了
list<Node>::iterator ite = ls.begin();
ite++;
ite++;
// ls.erase(ite);//14没了
// ls.erase(–ls.end()); //尾元素12
// ls.erase(ite,–ls.end()); //删除14,13
// ls.clear();
// ls.remove(Node(14,‘c’)); //14被删除
// ls.unique(); //删除多余的15 重要
// for_each(ls1.begin(), ls.end(), fun);
// ls.assign(3,Node(2,‘c’)); //= 3个2c
list ls1;
// ls1 = ls;
ls1.assign(ite,ls.end());
for_each(ls1.begin(), ls.end(), fun); // 15 14 13
}
void ListDo()
{
list ls;
ls.push_front(Node(16, 'e'));
ls.push_front(Node(15, 'd'));
ls.push_front(Node(15, 'd'));
ls.push_front(Node(14, 'c'));
ls.push_front(Node(13, 'b'));
ls.push_front(Node(12, 'a'));
list<Node>::iterator ite = find(ls.begin(),ls.end(),Node(14,'c'));
cout << ite->a << " " << ite->c << endl;
// ls.sort();
// list ls1;
// ls.push_front(Node(17, ‘e’));
// ls.push_front(Node(13, ‘c’));
// ls.push_front(Node(10, ‘d’));
// ls.merge(ls1); //合并 ,有序
// ls.sort();
// ls.reverse();
// list ls;
// ls1.push_back(Node(123,‘a’));
// ls1.swap(ls); //交换
// for_each(ls1.begin(), ls.end(), fun);
// ls.reverse(); //翻转
// for_each(ls1.begin(), ls.end(), fun);
}
int main()
{
// Listsize;
// ListDefine;
// ListCoutAdd;
// ListDo
system(“pause”);
return 0;
}