顺序容器:vector和deque 的程序举栗子

1、vector 举栗子(演示vector常用的成员函数)

#include <iostream>
#include <vector>
using namespace std;

//模板,输出vector中的元素
template<class T>
void PrintVector( T s, T e)
{
	for(; s != e; ++s)
	cout << * s << " ";
	cout << endl;
}

int main(){
	int a[5] = { 1,2,3,4,5 };
	vector<int> v(a,a+5); 								//将数组a的内容放入v
	cout << "1) " << v.end() - v.begin() << endl;		//两个随机迭代器可以相减,输出 1) 5
	
	cout << "2) "; 
	PrintVector(v.begin(),v.end());						//2) 1 2 3 4 5
	
	v.insert(v.begin() + 2, 13); 						//插入:在begin()+2位置插入 13
	cout << "3) "; 
	PrintVector(v.begin(),v.end());						//3) 1 2 13 3 4 5
	
	v.erase(v.begin() + 2); 							//删除:删除位于 begin() + 2的元素
	cout << "4) "; 
	PrintVector(v.begin(),v.end());						//4) 1 2 3 4 5
	
	vector<int>  v2(4,100); 							//v2 有4个元素,都是100
	v2.insert(v2.begin(),v.begin()+ 1,v.begin()+3);		//将v的一段插入v2开头
	cout << "5) v2: "; PrintVector(v2.begin(),v2.end());//5) v2: 2 3 100 100 100 100
	
	v.erase(v.begin() + 1, v.begin() + 3);				//删除 v 上的一个区间,即 2,3
	cout << "6) "; 
	PrintVector(v.begin(),v.end());						//6) 1 4 5
	return 0;
}

2、用vector实现二维数组:vector套vector

#include <iostream>
#include <vector>
using namespace std;
int main() {
	vector<vector<int> > v(3);//v有3个元素,每个元素都是vector<int> 容器
	for(int i = 0;i < v.size(); ++i)
		for(int j = 0; j < 4; ++j)
			v[i].push_back(j);
	for(int i = 0;i < v.size(); ++i) {
		for(int j = 0; j < v[i].size(); ++j)
			cout << v[i][j] << " ";
		cout << endl;
	}
	return 0;
}
/*
程序输出结果:
0 1 2 3
0 1 2 3
0 1 2 3
*/

2、关于deque

  • 所有适用于 vector的操作都适用于 deque。
  • deque还有 push_front(将元素插入到前面) 和pop_front(删除最前面的元素)操作,复杂度是O(1)
原文地址:https://www.cnblogs.com/lasnitch/p/12764217.html