Dark horse programmer C++ improves 7-list container [linked list]

Insert picture description here

#include<list>
#include<iostream>
using namespace std;

//打印
void PrintList(list<int> mlist) {
    
    
	for (list<int>::iterator it = mlist.begin(); it != mlist.end(); it++)
		cout << *it << " ";
}

//初始化操作
void test01() {
    
    

	list<int> mlist1;								//默认构造
	list<int> mlist2(10, 5);						//有参构造
	list<int> mlist3(mlist2);						//拷贝构造
	list<int> mlist4(mlist3.begin(), mlist3.end());	//迭代器区间
	//打印
	PrintList(mlist4);
}

//插入删除
void test02() {
    
    

	list<int> mlist;

	//插入操作
	mlist.push_front(10);			//头插
	mlist.push_back(30);
	mlist.push_front(30);
	mlist.push_back(20);			//尾插
	mlist.insert(mlist.begin(), 30);//指定位置插入,相当于头插
	mlist.insert(mlist.end(), 40);	//相当于尾插
	list<int>::iterator it = mlist.begin();
	it++;
	it++;
	mlist.insert(it, 50);
	cout << "插入操作后:" << endl;
	PrintList(mlist);

	//删除操作
	mlist.pop_back();		//删除尾部
	mlist.pop_front();		//删除头部
	mlist.erase(it);		//删除指定位置的元素
	cout << "\n删除头尾指定位置的元素后:" << endl;
	PrintList(mlist);
	mlist.push_back(30);
	mlist.push_front(30);
	mlist.remove(30);
	cout << "\n删除所有与给定值相匹配的元素后:" << endl;
	PrintList(mlist);
}

//赋值操作
void test03() {
    
    

	//赋值
	list<int> mlist1;
	mlist1.assign(10, 10);	//赋值
	list<int> mlist2;
	mlist2 = mlist1;
	cout << "mlist2:" << endl;
	PrintList(mlist2);
	list<int> mlist3;
	mlist3.assign(10, 5);
	cout << "\nmlist3:" << endl;
	PrintList(mlist3);
	//交换
	mlist2.swap(mlist3);
	cout << "\nnew mlist2:" << endl;
	PrintList(mlist2);
	cout << "\nnew mlist3:" << endl;
	PrintList(mlist3);
}

//容器元素反转
void test04() {
    
    

	list<int> mlist;
	for (int i = 0; i < 10; i++)
		mlist.push_back(i);
	
	cout << "原来的顺序:" << endl;
	PrintList(mlist);

	//容器元素反转
	mlist.reverse();
	cout << "\n现在的顺序:" << endl;
	PrintList(mlist);
}

//排序的回调函数
bool mycompare05(int v1, int v2) {
    
    
	return v1 > v2;
}
//排序方法
void test05() {
    
    

	list<int> mlist;
	mlist.push_back(20);
	mlist.push_back(50);
	mlist.push_back(10);
	mlist.push_back(70);
	mlist.push_back(60);
	cout << "原来的顺序:" << endl;
	PrintList(mlist);

	//容器元素排序(默认从小到大)
	mlist.sort();
	cout << "\n默认排序后的顺序:" << endl;
	PrintList(mlist);

	//使用加入参数——回调函数后变成从大到小
	mlist.sort(mycompare05);
	cout << "\n自定义排序后的顺序:" << endl;
	PrintList(mlist);
}

//简单测试
int main() {
    
    

	//test01();
	//test02();
	//test03();
	//test04();
	test05();

	cout << endl << endl;
	return 0;
}

Guess you like

Origin blog.csdn.net/qq_43685399/article/details/108610797