C++ list容器

C++ list容器,第1张

C++ list容器
#include 
#include 
#include "myList.hpp"
using namespace std;

//基本 *** 作
void testList()
{
	list mylist;
	for (int i = 0; i < 3; i++)
	{
		mylist.push_front(i);		//插入
		//0   1 0   2 1 0
	}
	mylist.push_back(101);
	cout << mylist.front() << endl;
	cout << mylist.back() << endl;
	cout << mylist.size() << endl;
	//遍历 
	for (auto v : mylist)
	{
		cout << v << "t";
	}
	cout << endl;
	//迭代器
	list::iterator iter;
	for (iter = mylist.begin(); iter != mylist.end(); iter++)
	{
		cout << *iter << "t";
	}
	cout << endl;
	mylist.sort();		//排序
	for (auto v : mylist)
	{
		cout << v << "t";
	}
	cout << endl;
	mylist.reverse();	//反转
	//删除的方式进行遍历
	//pop_back()
	//pop_front();
	while (!mylist.empty())
	{
		cout << mylist.front() << "t";
		mylist.pop_front();
	}
	cout << mylist.size() << endl;
}
class MM 
{
public:
	MM(string name, int age) :name(name), age(age) {}
	string getName() const { return name; }
	int getAge()	const { return age; }
protected:
	string name;
	int age;
};
//直接用子函数的方式描述比较准则
bool comparentByName(const MM& object1, const MM& object2)
{
	return object1.getName() < object2.getName();
}
bool comparentByAge(const MM& object1, const MM& object2) 
{
	return object1.getAge() > object2.getAge();
}
// *** 作自定义类型
void testListData() 
{
	list mmList;
	MM mm[3] = { {"string1",15},
	{"string2",17},
	{"string0",29} };
	for (int i = 0; i < 3; i++) 
	{
		mmList.push_back(mm[i]);
	}
	for (auto v : mmList) 
	{
		cout << v.getName() << "t" << v.getAge() << endl;
	}
	cout << "---------------------" << endl;
	mmList.sort(comparentByName);
	for (auto v : mmList)
	{
		cout << v.getName() << "t" << v.getAge() << endl;
	}
	cout << "---------------------" << endl;
	mmList.sort(comparentByAge);
	for (auto v : mmList)
	{
		cout << v.getName() << "t" << v.getAge() << endl;
	}

}
void testMyList()
{
	MyList mylist;
	for (int i = 0; i < 3; i++)
	{
		mylist.push_front(i);		//插入
		//0   1 0   2 1 0
	}
	mylist.push_back(101);
	cout << mylist.front() << endl;
	cout << mylist.back() << endl;
	cout << mylist.size() << endl;
	//遍历 
	for (auto v : mylist)
	{
		cout << v << "t";
	}
	cout << endl;
}

int main() 
{
	testListData();
	testMyList();
	return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4995547.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存