STL相关知识点(2)

vector操作: 

#include <iostream>
#include <vector>

using namespace std;

void vectorInit()
{
	int array[] = {1,2,3,4,5,6,7,8,9};
	vector<int> v1;													//vector无参构造函数;
	vector<int> v2[10];												//vector构造函数,构造容量为10个int的vcetor;
	vector<int> v3(array,array+sizeof(array)/sizeof(array[0]));		//vector构造函数,参数为开始地址,结束地址;
	vector<int> v4(10,10);											//vector构造函数,构造10个元素都为10的vector;

	for(int i = 0;i < v1.size() ;i++)								//v1 赋值;
	{
		cout << v1[i] << " "; 
	}
	cout << endl;

	for(int i = 0;i < v3.size(); i++)								//v3 赋值;
	{
		cout << v3[i] << " "; 
	}
	cout << endl;

	for(int i = 0;i < v4.size(); i++)								//v4 赋值;
	{
		cout << v4[i] << " "; 
	}
	cout << endl;
}

void vectorAssign()													//赋值函数
{
	int array[] = {0,1,2,3,4,5,6,7,8,9};
	vector<int> v1(10);
	vector<int> v3(array,array+sizeof(array)/sizeof(array[0]));		
	for(int i = 0;i < v1.size();i++)
	{
		cout << v1[i] << " ";
	}
	cout << endl;

	vector<int> v2(10);
	v2.assign(10,10);
	for(int i = 0;i < v2.size();i++)
	{
		cout << v2[i] << " ";
	}
	cout << endl;

	v2 = v1;														//将v1的值赋给v2;
	for(int i = 0;i < v2.size();i++)
	{
		cout << v2[i] << " ";
	}
	cout << endl;
	
	vector<int> v4(10);
	for(int i = 0;i < 10;i++)
	{
		v4[i] = i + 1;
	}

	v2 = v4;														//将v4的值赋给v2;
	for(int i = 0;i < v2.size();i++)
	{
		cout << v2[i] << " ";
	}
	cout << endl;

	v4.swap(v1);													//交换v1和v4的值;
	for(int i = 0;i < v4.size();i++)
	{
		cout << v4[i] << " ";
	}
	cout << endl;
}

void vectorIterator()												//迭代器操作;
{
	vector<int> v1(10);
	for(int i = 0;i < 10;i++)
	{
		v1[i] = i + 1;
	}

	for(vector<int>::iterator it = v1.begin(); it != v1.end(); it++ )	//遍历v1;
	{
		cout << *it << " ";
	}
	cout << endl;	

	for(vector<int>::reverse_iterator rit = v1.rbegin(); rit != v1.rend(); rit++ )	//反向遍历;
	{
		cout << *rit << " ";
	}
	cout << endl;

}

void vectorInsert()
{
	vector<int> v1(10);
	for(int i = 0;i < v1.size();i++)
	{
		v1[i] = i + 1;
	}

	vector<int>::iterator it = v1.begin();								
	it += 3;
	v1.insert(it,100);													//配合迭代器插入数据,参数为插入位置和数据;
	for(it = v1.begin(); it != v1.end(); it++ )
	{
		cout << *it << " ";
	}
	cout << endl;

	it = v1.begin();
	it++;
	v1.insert(it,5,50);													//配合迭代器插入数据,参数为插入位置和数据个数和数据;
	for(it = v1.begin(); it != v1.end(); it++ )
	{
		cout << *it << " ";
	}
	cout << endl;
	
	vector<int> v2(10);													
	for(int i = 0;i < v2.size();i++)
	{
		v2[i] = i + 24;
	}

	it = v2.begin();													
	v1.insert(v1.begin(), it, it + 5);									//配合迭代器插入数据,参数为插入位置和插入目标字符串的起始位置和结束位置;
	for(it = v1.begin(); it != v1.end(); it++ )
	{
		cout << *it << " ";
	}
	cout << endl;

	v2.push_back(525);													//尾插数据;
	for(it = v2.begin(); it != v2.end(); it++ )
	{
		cout << *it << " ";
	}
	cout << endl;

	v2.pop_back();														//尾删数据;
	for(it = v2.begin(); it != v2.end(); it++ )
	{
		cout << *it << " ";
	}
	cout << endl;

	it = v2.begin();
	v2.erase(it,it + 5);												//删除数据,参数为起始位置和结束位置;
	for(it = v2.begin(); it != v2.end(); it++ )
	{
		cout << *it << " ";
	}
	cout << endl;

	
	v2.clear();															//清空v2;
	for(it = v2.begin(); it != v2.end(); it++ )
	{
		cout << *it << " ";
	}
	cout << endl;

}

int main()
{	
	vectorInit();
	vectorIterator();
	vectorAssign();
	vectorInsert();
	return 0;
}

deque相关操作

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

int main()
{
	int array[10] = {1,2,3,3,21,3,4,5,6,3};
	deque<int> d1(10);

	for(int i = 0;i < d1.size();i++)
	{
		d1[i] = array[i];
	}



	d1.push_back(24);			//尾插;
	d1.push_front(25);			//头插;

	d1.front() = 5;					
	d1.back() = 4;

	d1.pop_back();				//尾删;
	d1.pop_front();				//头删;

	for(deque<int>::iterator it = d1.begin();it != d1.end();it++) //利用迭代器删除指定数据后遍历;
	{
		cout  << "*****" << endl;
		if(3 == *it)
		{
			it = d1.erase(it);										//返回值为所删除数据的下一个数据的地址;
			cout << *it << " ";
			it--;
			cout << *it << " ";
		}
		else
		{
			cout << *it << " ";
		}
	}
	cout << endl;
	return 0;
}

:

猜你喜欢

转载自blog.csdn.net/david_lzn/article/details/81506670
今日推荐