linux下练习 c++ 普通容器的使用

/*
迭代器
.begin(),.end() ,.rbegin() , .rend()
插入:.insert(position,element)
删除:.erase(position),.erase(pos_begin,pos_end)
清除:.clear()
大小:.size(), .max_size(), .empty()
交换:.swap(c2) , swap(c1,c2)
运算符:=,>,<,>=,<=,==,!=
*/
#include <iostream>
using namespace std;
#include <vector>
#include <algorithm>

#ifndef print_fun
#define print_fun
template<typename T>
///显示序列数据
void print(T b,T e)
{
	bool isExit=false;
	while (b!=e)
	{
		cout<<*b++<<' ';
		isExit=true;
	}
	if(isExit) cout<<endl;

}
#endif
int main()
{
	int a[5]={44,33,55,66,11};
	vector<int> vi(a,a+5);//用数组初始化一个迭代器vi
	cout<<vi.size()<<endl;
	sort(vi.begin(),vi.end());//元素排序
	vector<int>::iterator b= vi.begin();
	print(vi.begin(),vi.end());//正向迭代器
	print(a,a+5);
	print(vi.rbegin(),vi.rend());//反向迭代器
	vi.insert(vi.begin()+1,48);//插入到第2
	vi.insert(vi.end(),49);//插入到最后
	vi.insert(vi.end()-1,57);
	print(vi.begin(),vi.end());
	vi.erase(vi.end()-1);//删除最后一个
	print(vi.begin(),vi.end());
	vi.erase(vi.begin()+2,vi.end()-2);//删除一个区间
	print(vi.begin(),vi.end());
	vector<int> v2(a,a+5);
	vi.swap(v2);//vi与v2交换
	print(vi.begin(),vi.end());
	vi.swap(v2);//vi再与v2交换回去 
	print(vi.begin(),vi.end());
	vi.clear();//清空容器
	cout<<vi.size()<<endl;
	return 0;
}


 

 

posted @ 2012-10-15 11:20  真爱无限  阅读(237)  评论(0编辑  收藏  举报