STL容器的简单介绍以及使用(顺序容器篇)

顺序容器

顺序容器以线性方式存储序列元素,并且这些序列有头有尾,以此存放。序列的“头”为首元素,“尾”为末元素.
访问:
1、顺序访问:向量(vector),双端队列(deque),链表(list)
2、随机访问:向量(vector),双端队列(deque)
简单操作:
tip:迭代器:用面向对象技术封装的高级指针(可理解为一种只能指针,后续文章会详细讲解)

/*
 C<T>::interator it     定义指定类型的迭代器对象
 c.begin()              返回指向容器对象中首元素的迭代器
 c.end()                返回指向容器对象中末元素后续位置的迭代器
                        //特别注意c.end()得到的并不是末元素的位置,如需得到末元素的位置,c.end()-1即可
 c.rbegin               返回指向容器对象中逆向首元素的迭代器
 c.rend()               返回指向容器对象中逆向末向首元素的迭代器
                        //特别注意c.rend()得到的并不是逆向末元素的位置,如需得到逆向末元素的位置,c.rend()-1即可
*/ 
	/*
	逆向末
	vector<char>::reverse_iterator it2;
	it2 = vc.rend()-1;
	cout << *it2 << endl;
	逆向末向首元素
	vector<char>::reverse_iterator it2;
	it2 = vc.rbegin();
	cout << *it2 << endl;
	*/
	#include <iostream>
#include <vector>
#include <list>
#include <iterator>
using namespace std;
void show(vector<char>v);
int main() {
	char a[5] = {'a','b','c','d','e'};
	vector <char>vc(a, a + 3);//利用a数组的数据,在区间[a,a+3)来构造vc向量对象,包含a位置的元素不包括a+3位置的元素
	vector<char>::iterator itv;//定义向量迭代器
	cout << "vc:初始值:";
	show(vc);
	//插入
	vc.insert(vc.begin(),'j');//插入;把j插入vc的首部
	cout << "vc:首部插入j:";
	show(vc);
	vc.push_back('w');//末端插入w
	cout << "vc:尾部插入w:";
	show(vc);
	itv = vc.begin()+3;
	vc.insert(itv, '3');
	cout << "vc:指定位置插入3:";
	show(vc);
	//删除
	vc.pop_back();
	cout << "删除末端元素:";
	show(vc);
	vc.erase(vc.begin() + 1, vc.end()-1);
	cout << "删除除第一个和最后一个元素之外的所有元素:";
	show(vc);
	vc.erase(vc.begin() + 1);
	cout << "删除第二个元素:";
	show(vc);
	cout << "容器的容量:" << vc.max_size() << endl;
	cout << "容器对象当前所包含元素的数量:" << vc.size() << endl;
	if (vc.empty()) cout << "容器为空" << endl; //if(vc.empty())等价于if(vc.size()==0)
	else cout << "容器不为空" << endl;
	system("pause");
	return 0;
}
void show(vector<char>v) {
	vector<char>::iterator it;//定义向量迭代器
	for (it = v.begin(); it != v.end(); it++) {//输出容器内的所有元素
		cout << *it;//所有容器都要配合迭代器才能访问内部的元素,可以简单的把迭代器理解为智能指针
	}
	cout << endl;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值