标准容器的共性及举例

应用举例如下:

/*
 * vector_1.cpp
 *
 *  Created on: 2013年8月5日
 *      Author: 黄俊东
 *      女神!女神!!!
 */


#include <iostream>
#include <vector>//使用某种容器就要引入相应的头文件
#include <algorithm>//使用sort()函数,所以要引入这个头文件

using namespace std;

/**
 * 打印一个区间中的所有元素
 */
template <typename T>
void print(T b , T e){
	while( b!= e){
		cout<<*b++<<' ';
	}
	cout<<endl;
}
/**
 * begin():第一个元素,
 * end():最后一个元素,
 * rbegin():倒数第一个元素
 * rend():倒数最后一个元素
 * 上面四个函数返回的都是一个迭代器
 *
 * insert(pos,element) : 在pos这个位置上插入element这个元素
 * erase(pos) :删除pos这个位置上的元素
 * erase(begin,end) : 删除begin~end之间的元素
 * clear() : 清除容器中的所有元素
 * 上面的pos指的都是一个迭代器
 *
 * size() : 容器中元素的个数
 * max_size() : 容器的最大容量
 * empty() : 判断容器是否为空
 * vi.swap(v2) : 交换vi容器与v2容器的内容
 * swap(vi,v2) : 同上
 *
 * x.capacity() :返回容器的当前容量,不是标准容器的共性.
 */
int main(){
	int a[5]={33,22,11,55,44};
	vector<int> vi(a,a+5);
	cout<< vi.size()<<endl;//5

	sort(vi.begin(),vi.end());
	vector<int>::iterator b = vi.begin();

	while(b!=vi.end()){//11 22 33 44 55
		cout<<*b++<<' ';
	}
	cout<<endl;

	for(int i = 0 ; i < 5 ; ++i ){
		cout<<a[i]<<',';//33,22,11,55,44,
	}
	cout<<endl;

	print(vi.begin(),vi.end());//11 22 33 44 55
	print(a,a+5);//33 22 11 55 44
	print(vi.rbegin(),vi.rend());//55 44 33 22 11
	b  = vi.begin();
	vi.insert(++++b,66);//11 22 66 33 44 55
	vi.insert(vi.begin(),77);//77 11 22 66 33 44 55
	vi.insert(vi.end(),88);//77 11 22 66 33 44 55 88
	print(vi.begin(),vi.end());
	cout<<vi.size()<<'/'<<vi.max_size()<<endl;//8/1073741823
	vi.erase(------vi.end());
	print(vi.begin(),vi.end());//77 11 22 66 33 55 88
	vi.erase(++++vi.begin(),--vi.end());//77 11 88
	print(vi.begin(),vi.end());

	vector<int> v2(a,a+5);
	print(v2.begin(),v2.end());//33 22 11 55 44
	vi.swap(v2);
	cout<<"=========================="<<endl;
	print(vi.begin(),vi.end());//33 22 11 55 44
	print(v2.begin(),v2.end());//77 11 88
	swap(vi,v2);
	cout<<"=========================="<<endl;
	print(vi.begin(),vi.end());//77 11 88
	print(v2.begin(),v2.end());//33 22 11 55 44
	vector<int> t = vi;
	vi = v2;
	v2 = t;
	cout<<"=========================="<<endl;
	print(vi.begin(),vi.end());//33 22 11 55 44
	print(v2.begin(),v2.end());//77 11 88

	vi.clear();
	cout<<vi.size()<<endl;//0
	print(vi.begin(),vi.end());//这时什么东西也没有了
	vector<int> x;
	//x.capacity() 返回容器当前的容量
	cout<<"vector当前容量:"<<x.capacity()<<endl;
}


原文地址:https://www.cnblogs.com/javawebsoa/p/3238988.html