一个程序包含C++ STL中vector常见用法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34784043/article/details/82790890

废话少说,直接上代码: 

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

int main()
{
	//vector的四种构造方式
	//构造一个空vector 
	vector<int> vectorOne;
	//向里面压入数据
	for( int i=0; i<10; i++ )
		vectorOne.push_back(i);
	//访问数据方式一 
	for( int i=0; i<vectorOne.size(); i++ )
		cout << vectorOne[i] << " ";
	cout << endl;
	//返回当前vector在重新进行内存分配以前所能容纳的元素数量
	cout << vectorOne.capacity() << endl;
	
	//构造方式二,传入一个vector变量
	vector<int> vectorTwo( vectorOne );
	//访问方式二
	for( int i=0; i<vectorTwo.size(); i++ )
		cout << vectorTwo.at(i) << " ";
	cout << endl; 
	//删除当前vector中的所有元素
	vectorTwo.clear();
	cout << vectorTwo.size() << endl;
	
	//两个vector进行大小比较
	cout << (vectorOne > vectorTwo) << " ";
	cout << (vectorOne >= vectorTwo) << " ";
	cout << (vectorOne > vectorTwo) << " ";
	cout << (vectorOne >= vectorTwo) << " ";
	cout << (vectorOne == vectorTwo) << " ";
	cout << (vectorOne != vectorTwo) << " ";
	cout << endl; 
	
	//构造方式三,确定容量和初始化数值
	vector<char> vectorThree( 10, 65 );
	for (int i=0; i<vectorThree.size(); i++ )
		vectorThree.at(i) += i;
	//访问方式三, 迭代器
	vector<char>::iterator iter;
	for( iter=vectorThree.begin(); iter!=vectorThree.end(); iter++ )
		cout << *iter << " ";
	cout << endl; 
	//查看vectorThree所能容纳元素的最大值 
	cout << vectorThree.max_size() << endl; 
	
	//构造方法四,用迭代器构造 
	vector<char> vectorFour(vectorThree.begin(), vectorThree.end());
	//访问方式四,向后弹出元素
	while( !vectorFour.empty() )//非空循环
	{
		cout << vectorFour.front() << " ";//返回第一个元素 
		cout << vectorFour.back() << " ";//返回最后一个元素
		vectorFour.pop_back();//弹出最后一个元素 
	}
	cout << endl; 
	
	//赋值并清空原来的数据 
	vectorFour.assign( vectorThree.begin(), vectorThree.end() );
	for( iter=vectorFour.begin(); iter!=vectorFour.end(); iter++ )
		cout << *iter << " ";
	cout << endl;
	vectorFour.assign( 5, 100 );
	for( iter=vectorFour.begin(); iter!=vectorFour.end(); iter++ )
		cout << *iter << " ";
	cout << endl;
	
	//删除迭代器指向位置元素
	vectorThree.erase(vectorThree.begin());
	for( iter=vectorThree.begin(); iter!=vectorThree.end(); iter++ )
		cout << *iter << " ";
	cout << endl;
	//向制定位置插入元素
	vectorThree.insert( vectorThree.begin(), 65 );
	for( iter=vectorThree.begin(); iter!=vectorThree.end(); iter++ )
		cout << *iter << " ";
	cout << endl;
	//向指定范围删除元素
	iter = vectorThree.begin();
	iter++;
	vectorThree.erase( iter, vectorThree.end() );
	for( iter=vectorThree.begin(); iter!=vectorThree.end(); iter++ )
		cout << *iter << " ";
	cout << endl;
	//插入元素
	vectorThree.insert( iter, 9, 66 );
	for( iter=vectorThree.begin(); iter!=vectorThree.end(); iter++ )
		cout << *iter << " ";
	cout << endl;
	//插入元素
	vectorThree.insert( vectorThree.end(), vectorFour.begin(), vectorFour.end() );
	for( iter=vectorThree.begin(); iter!=vectorThree.end(); iter++ )
		cout << *iter << " ";
	cout << endl;
	//返回最后一个元素 
	cout << *(vectorThree.rbegin()) << " " << endl;
	//返回一个元素前面的未知空间迭代器 
	cout << *(vectorThree.rend()) << " " << endl;
	//改变当前vector的大小为20,且对新创建的元素赋值'S'
	vectorFour.resize( 20, 'S' );
	for( iter=vectorFour.begin(); iter!=vectorFour.end(); iter++ )
		cout << *iter << " ";
	cout << endl;
	//为当前vector预留至少共容纳100个元素的空间,实际空间大于size
	vectorFour.reserve(100);
	cout << vectorFour.size() << endl;
	//交换当前vector的元素
	vectorThree.swap( vectorFour );
	for( iter=vectorFour.begin(); iter!=vectorFour.end(); iter++ )
		cout << *iter << " ";
	cout << endl;
	return 0;
}

运行结果:

猜你喜欢

转载自blog.csdn.net/qq_34784043/article/details/82790890