C++STL容器篇(二)

接着上一章继续为大家介绍容器,这次所介绍的都是与数据结构有关的容器;

以下类都可使用自定义类型

双向链表:list

迭代器名:iterator

迭代器使用:
 

list<int> ppp;
	for (int i=0;i<10;i++)
	{
		ppp.push_front(i);
	}

	for (list<int>::iterator i = ppp.begin(); i != ppp.end(); i++)//迭代器的创建i为迭代器
	{
		cout << *i << endl;//通过迭代器访问元素
	}

list中的成员函数

assign将元素从列表中擦除并将一组新的元素复制到目标列表。
back返回对列表中最后一个元素的引用。
begin返回发现列表中第一个元素的位置的迭代器。
cbegin返回发现列表中第一个元素的位置的常量迭代器。
cend返回发现一个列表中最后一个元素之后的位置的敞亮表达式。
clear消除列表中的全部元素。
crbegin返回发现反向列表中第一个元素的位置的常量迭代器。
crend返回用于发现反向列表中最后一个元素之后的位置的常量迭代器。
emplace将构造的元素插入到列表中的指定位置。
emplace_back在列表的结尾处添加一个就地构造的元素。
emplace_front在列表的起始位置添加一个就地构造的元素。
empty测试列表是否为空。
end返回用于发现列表中最后一个元素之后的位置的迭代器。
erase从列表中的指定位置移除一个或一系列元素。
front返回对列表中第一个元素的引用。
get_allocator返回用于构造列表的 allocator 对象的一个副本。
insert将一个、几个或一系列元素插入列表中的指定位置。
max_size返回列表的最大长度。
merge将元素从参数列表移除,将它们插入目标列表,将新的组合元素集以升序或其他指定顺序排序。
pop_back删除列表末尾的元素。
pop_front删除列表起始处的一个元素。
push_back在列表的末尾添加元素。
push_front在列表的开头添加元素。
rbegin返回发现反向列表中第一个元素的位置的迭代器。
remove清除列表中与指定值匹配的元素。
remove_if将满足指定谓词的元素从列表中消除。
rend返回发现反向列表中最后一个元素之后的位置的迭代器。
resize为列表指定新的大小。
reverse反转列表中元素的顺序。
size返回列表中元素的数目。
sort按升序或其他顺序关系排列列表中的元素。
splice将元素从自变量列表中删除或将它们插入目标列表。
swap交换两个列表的元素。
unique从列表中删除满足某些其他二元谓词的相邻重复元素或相邻元素。

 

栈:stack

栈的类其实非常简单常用的就五个成员函数,它实现的功能是先进后出的规则

成员函数:

empty测试栈是否为空。
pop删除元素从堆栈的顶部。
push将一个元素添加到堆栈的顶部。
size返回栈中元素的数量。
top获取栈顶元素。

 使用:

stack<int> pp;//创建栈
	for (int i = 0; i < 10; i++)
	{
		pp.push(i);在栈顶插入元素
	}
	for (; !pp.empty();)//判断栈是否为空
	{
		cout << pp.top();//打印栈顶元素
		pp.pop();//删除栈顶元素
	}

队列:queue(普通队列)  deque(可头尾插入的队列)   priority_queue(优先队列)

先来看看函数

普通队列:queue

常用成员函数:

back最后返回一个引用,最近添加元素的队列。
empty测试队列是否为空。
front返回一个引用队列第一个进入的元素。
pop删除第一个进入队列的元素。
push将一个元素添加到队列的后面。
size返回队列中元素的数量。

 使用:

queue<int>pp;
	for (int i = 0; i < 10; i++)
	{
		pp.push(i);
	}
	for (; !pp.empty();)
	{
		cout << pp.front();
		pp.pop();
	}

 可头尾插入的队列:deque

成员函数
“属性”说明
assign将元素从 deque 中清除并将新的元素序列复制到目标 deque
at返回对 deque 中指定位置的元素的引用。
back返回对 deque 中最后一个元素的引用。
begin返回一个随机访问 iterator,它寻址 中的第一个元素 deque 。
cbegin返回一个指向 deque 中第一个元素的常量迭代器。
cend返回指向刚超出 deque 末尾位置的随机访问 const 迭代器。
clear清除 deque 的所有元素。
crbegin返回一个指向以相反顺序查看的 deque 中的第一个元素的随机访问常量迭代器。
crend返回一个指向以相反顺序查看的 deque 中的第一个元素的随机访问常量迭代器。
emplace将就地构造的元素插入到指定位置的 deque 中。
emplace_back将就地构造的元素添加到 deque 的末尾。
emplace_front将就地构造的元素添加到 deque 的开头。
empty如果 deque 包含零个元素,则返回 true;如果它包含一个或多个元素,则返回 false
end返回指向刚超出 deque 末尾位置的随机访问迭代器。
erase从指定位置删除 deque 中一个或一系列元素。
front返回对 deque 中第一个元素的引用。
get_allocator返回用于构造 allocator 的 deque 对象的副本。
insert将一个、多个或一系列元素插入到指定位置的 deque 中。
max_size返回 deque 的最大可取长度。
pop_back清除 deque 末尾处的元素。
pop_front清除 deque 开头处的元素。
push_back将元素添加到 deque 的末尾。
push_front将元素添加到 deque 的开头。
rbegin返回指向反向 deque 中的第一个元素的随机访问迭代器。
rend返回指向刚超出反向 deque 中的最后一个元素位置的随机访问迭代器。
shrink_to_fit放弃额外容量。
size返回 deque 中的元素数量。
swap交换两个 deque 的元素。

 使用:

deque<int >pp = {5,8,43,48,463,4,6};//初始化的创建方法
	
	for (; !pp.empty(); )
	{
		cout << pp.front()<<endl;
			pp.pop_front();
	}

优先队列: priority_queue

成员函数:

empty测试 priority_queue 是否为空。
pop从顶部位置移除 priority_queue 的最大元素。
push基于运算符中元素的优先级向优先级队列中添加元素 < 。
size返回 priority_queue 中的元素数量。
top返回对 priority_queue 顶部的最大元素的常量引用。

使用:

 

//priority_queue<int,array<int,6> >dd;
priority_queue<int, vector<int> >dd ;//都可以但建议这样写

	for (int i=0;i<10;i++)
	{
		dd.push(rand()%198);
	}cout << dd.size() << endl;
	for (; !dd.empty();)
	{
		
		cout << dd.top()<<endl;//此处输出的为已经排好序的组
		dd.pop();
	}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值