STL list 代码测试

#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;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值