STL中的序列式容器的特性
2023-04-12
STL中的序列式容器主要有vector、deque(双端队列)、list
1、vector

代码如下:
/*
* vector_2.cpp
*
* Created on: 2013年8月6日
* Author: Administrator
* 为了能有章泽天这样的女朋友。。。。。
*/
#include
#include
using namespace std;
template
void print(T b , T e,char c = ' '){
while(b!=e){
cout<<*b++< vd,vv;
for(int i = 0 ; i < 9 ; ++i ){
vd.push_back(i+0.1);
cout<<&*vd.begin()<<':';
//capacity():返回vector的当前容量
//size():返回vector已经使用的容量
cout<
结果如下:
0x371040:1/1
0x3710a8:2/2
0x3710c0:3/4
0x3710c0:4/4
0x3710e8:5/8
0x3710e8:6/8
0x3710e8:7/8
0x3710e8:8/8
0x371130:9/16
-------------------------------
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9
0.1 1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1 1.30741e+079
0.1 1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1 异常: vector::_M_range_check
类型: St12out_of_range
2、deque

代码如下:
/*
* deque_1.cpp
*
* Created on: 2013年8月6日
* Author: Administrator
*/
#include
#include
using namespace std;
template
void print(T b , T e,char c = ' '){
while( b!= e){
cout<<*b++< dc;
dc.push_back(97);dc.push_back('c');
dc.push_front('s');dc.push_front('d');
dc.push_back('k');dc.push_front('$');
print(dc.begin(),dc.end());
dc[1] = 't';
for(int i = 0 ; i < dc.size() ; ++i ){
cout<
结果如下:
$ d s a c k
$,t,s,a,c,k,
t s a c
3、list

代码如下:
/*
* list_1.cpp
*
* Created on: 2013年8月6日
* Author: Administrator
*/
#include
#include
#include
using namespace std;
template
void print(T b , T e,char c = ' '){
while(b != e){
cout<<*b++< li(a,a+10):定义一个list类型的对象li,并进行初始化
list li(a,a+10),lili(b,b+6);
print(li.begin(),li.end());
//unque() : 去除相邻的重复数据
li.unique();
print(li.begin(),li.end());
//sort() :默认从小到大进行排序
li.sort();
print(li.begin(),li.end());
li.unique();
print(li.begin(),li.end());
//reverse() :倒叙
li.reverse();
print(li.begin(),li.end());
//list1.splice(pos,list2) :将list2中的元素一道list1中的pos位置上
li.splice(li.begin(),lili);
print(li.begin(),li.end());
//assert() :断言
assert(lili.empty());
//remove(n) : 删除所有值为n的元素
li.remove(5);
print(li.begin(),li.end());
li.sort();
li.unique();
print(li.begin(),li.end());
lili.push_back(0);
lili.push_back(4);
lili.push_back(7);
lili.push_back(5);
lili.push_back(10);
lili.sort();
print(lili.begin(),lili.end());
//l1.merge(l2) :将l2归并到l1中。(l1、l2必须是有序的)
li.merge(lili);
print(li.begin(),li.end());
lili.assign(b,b+6);
print(lili.begin(),lili.end());
//sort(greater()) :从小到大进行排序
lili.sort(greater());
print(lili.begin(),lili.end());
//sort(compare) :按照自定义的规则进行排序.
lili.sort(compare);
print(lili.begin(),lili.end());
}
结果如下:
3 8 8 8 5 5 1 8 8 7
3 8 5 1 8 7
1 3 5 7 8 8
1 3 5 7 8
8 7 5 3 1
9 3 5 2 7 6 8 7 5 3 1
9 3 2 7 6 8 7 3 1
1 2 3 6 7 8 9
0 4 5 7 10
0 1 2 3 4 5 6 7 7 8 9 10
9 3 5 2 7 6
9 7 6 5 3 2
9 6 3 7 5 2
本文仅代表作者观点,版权归原创者所有,如需转载请在文中注明来源及作者名字。
免责声明:本文系转载编辑文章,仅作分享之用。如分享内容、图片侵犯到您的版权或非授权发布,请及时与我们联系进行审核处理或删除,您可以发送材料至邮箱:service@tojoy.com



