一个程序包含C++ STL中Lists常见用法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34784043/article/details/82906346
#include <iostream>
#include <list>
using namespace std;

int main(){
	list<int> list1;
	//返回链表能够存储的元素数目
	cout << list1.max_size() << endl; 
	//向list1中放元素 
	for( int i=0; i<10; i++ ){
		list1.push_back(i);
	}
	//用list1给list2初始化 
	list<int> list2(list1.begin(), list1.end());
	//遍历list2 
	list<int>::iterator iter;
	for( iter=list2.begin(); iter!=list2.end(); iter++){
		cout << *iter << " ";
	} 
	cout << endl;
	//删除list2的所有元素
	list2.clear(); 
	//显示list2中元素的个数
	cout << list2.size() << endl; 
	//给list2重新赋值
	list2.assign(10,0);
	//删除迭代器指向位置的元素 
	list2.erase(list2.begin());
	//向list2中插入一个元素
	list2.insert(list2.begin(),1);
	//插入3个元素
	list2.insert(list2.begin(), 3, 2);
	//把list1插入list2
	list2.insert(list2.begin(), list1.begin(), list1.end()); 
	//遍历list2 
	for( iter=list2.begin(); iter!=list2.end(); iter++){
		cout << *iter << " ";
	} 
	cout << endl;
	//把list2大小改变到30,被加入的多余元素被赋值为--1
	list2.resize(30, -1); 
	//给list2中元素排序
	list2.sort(); 
	//遍历list2 
	for( iter=list2.begin(); iter!=list2.end(); iter++){
		cout << *iter << " ";
	} 
	cout << endl;
	//删除list2中所有重复的元素
	list2.unique();
	//遍历list2 
	for( iter=list2.begin(); iter!=list2.end(); iter++){
		cout << *iter << " ";
	} 
	cout << endl;
	//给list2赋值 
	list2.assign(list1.begin(), list1.end());
	//遍历list2 
	for( iter=list2.begin(); iter!=list2.end(); iter++){
		cout << *iter << " ";
	} 
	cout << endl;
	//删除链表中所有值为5的数据
	list2.remove(5); 
	//创建list3
	list<int> list3(list2.begin(), list2.end()); 
	//创建list4
	list<int> list4(5, 5); 
	//判断list2是否为空
	while(!list2.empty()){
		//返回最前面的一个元素 
		cout << list2.front() << " ";
		//删除最前面的元素 
		list2.pop_front(); 
	} 
	cout << endl;
	//把list1所有元素倒转
	list1.reverse(); 
	//判断list1是否为空
	while(!list1.empty()){
		//返回最后面的一个元素 
		cout << list1.back() << " " ;
		//删除最后面的元素 
		list1.pop_back(); 
	} 
	cout << endl;
	//把list3和list4归并
	list3.sort();
	list4.sort();
	list4.merge(list3); 
	//遍历list2 
	for( iter=list4.begin(); iter!=list4.end(); iter++){
		cout << *iter << " ";
	} 
	cout << endl;
	return 0;
}

 

猜你喜欢

转载自blog.csdn.net/qq_34784043/article/details/82906346