容器的使用(顺序容器)

list

#include<iostream>

//常用头文件

//容器头文件
//顺序容器
#include<vector>
#include<list>
#include<deque>
//关联容器
#include<set>
//multiset
#include<map>
//multimap
//容器适配器
#include<stack>
#include<queue>
//priority_queue

//函数对象头文件
#include<functional>

//泛型算法头文件
#include<algorithm>

//迭代器头文件
#include<iterator>

using namespace std;


template<typename Container>
void Show(Container& con)
{
	copy(con.begin(), con.end(),
		ostream_iterator<typename Container::value_type>(cout, " "));
	cout << endl;
}

//list底层为双向循环链表
int main()
{
	int arr[] = { 6, 1, 23, 123, 645, 45, 65 };
	int len = sizeof(arr) / sizeof(arr[0]);
	list<int> list1;
	list<int> list2(arr, arr + len);

	//list<int>::iterator rt = find(list2.begin(), list2.end(), 6);
	////查找容器在迭代器区间中值为10的元素,查找成功返回当前元素的迭代器,失败返回尾部迭代器
	//if (rt == list2.end())
	//{
	//	cout << "not find" << endl;
	//}
	//else
	//{
	//	cout << *rt << endl;
	//}
	list1.push_back(20);
	list1.push_front(30);
	list1.insert(list1.begin(), 30);
	//Show(list1);

	/*list1.pop_back();
	list1.pop_front();
	list1.erase(list1.begin());*/
	list1.clear();//清空
	//Show(list1);

	//sort(list2.begin(), list2.end());//err   因为list底层内存不连续,不能排序
	list2.sort();
	Show(list2);
	//迭代器减偏移(内存连续才能拿指针减偏移量)


	return 0;
}

deque

//deque
//映射关系,二维数组
template<typename Container>
void Show(Container& con)
{
	copy(con.begin(), con.end(),
		ostream_iterator<typename Container::value_type>(cout, " "));
	cout << endl;
}
int main()
{
	int arr[] = { 6, 1, 23, 123, 645, 45, 65 };
	int len = sizeof(arr) / sizeof(arr[0]);
	list<int> list2(arr, arr + len);
	deque<int> dq1;
	deque<int> dq2(list2.begin(),list2.end());
	/*dq1.push_back(20);
	dq1.push_front(10);
	dq1.insert(dq1.end(), 30);*/
	//Show(dq1);

	/*deque<int>::iterator rt = find(dq1.begin(), dq1.end(), 20);
	if (rt != dq1.end())
	{
		dq1.erase(rt);
	}*/
	//Show(dq1);
	//dq1.clear();
	
	sort(dq2.begin(), dq2.end());
	Show(dq2);
	return 0;
}

vector           底层为连续的数组    由于备用空间的存在,可能会浪费空间

list                不浪费空间,访问效率低,需要遍历每一个结点

deque          双端队列

猜你喜欢

转载自blog.csdn.net/Aspiration_1314/article/details/88379167