版权声明:本文为博主原创文章,未经博主允许不得转载。 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;
}
运行结果: