#include <iostream>
#include <vector>
#include<algorithm>
using namespace std;
typedef vector<int> Vector;
void printVector(Vector v)
{
const int nSize = (int)(v.size());
for(int i = 0;i < nSize;i++)
{
cout << v[i] << " ";
}
cout << endl;
}
int main()
{
int b[7]={1,2,3,4,5,6,7};
Vector a(b,b+7);
cout << "------遍历a------" << endl;
printVector(a);
cout << "a返回第一元素:" << a.front() << endl;//返回第一元素
cout << "a返回末尾元素:" << a.back() << endl;//返回末尾元素
Vector c(a.begin(),a.begin() + 3);//将a的0-2个元素赋值给向量c
cout << "------遍历c------" << endl;
printVector(c);
//a.assign(4,2);//a含有4个值为2的元素
cout << "------删除a向量的最后一个元素------" << endl;
a.pop_back();
cout << "------遍历a------" << endl;
printVector(a);
cout << "------删除a向量的a.begin()+1 到a.begin()+3(不包含)元素------" << endl;
a.erase(a.begin()+1,a.begin()+3);
cout << "------遍历a------" << endl;
printVector(a);
cout << "------在a的最后一个向量后插入一个元素10------" << endl;
a.push_back(10);
cout << "------遍历a------" << endl;
printVector(a);
cout << "------在a的第一个元素(从第0个算起)位置插入数值5------" << endl;
a.insert(a.begin()+1,5);
cout << "------遍历a------" << endl;
printVector(a);
cout << "------在a的第一个元素(从第0个算起)位置插入3个数,其值都为9------" << endl;
a.insert(a.begin()+1,3,9);
cout << "------遍历a------" << endl;
printVector(a);
cout << "------b为数组,在a的第一个元素(从第0个元素算起)的位置插入b的第三个元素到第5个元素(不包括b+6)------" << endl;
a.insert(a.begin()+1,b+3,b+6);
cout << "------遍历a------" << endl;
printVector(a);
cout << "返回a在内存中总共可以容纳的元素个数:" << a.capacity() << endl;
cout << "------将a的现有元素个数调整至8个,多则删,少则补,其值随机------" << endl;
a.resize(8);
cout << "------遍历a------" << endl;
printVector(a);
cout << "------将a的现有元素个数调整至10个,多则删,少则补,其值为2------" << endl;
a.resize(10,2);
cout << "------遍历a------" << endl;
printVector(a);
cout << "------将a的容量扩充至100------" << endl;
a.reserve(100);
cout << "------遍历a------" << endl;
printVector(a);
cout << "返回a在内存中总共可以容纳的元素个数:" << a.capacity() << endl;
/*cout << "------c为向量,将a中的元素和c中的元素整体交换------" << endl;
a.swap(c);
cout << "------遍历a------" << endl;
printVector(a);*/
cout << "------对a中的从a.begin()(包括它)到a.end()(不包括它)的元素进行从小到大排列------" << endl;
sort(a.begin(),a.end());
cout << "------遍历a------" << endl;
printVector(a);
cout << "------对a中的从a.begin()(包括它)到a.end()(不包括它)的元素倒置,但不排列------" << endl;
reverse(a.begin(),a.end());
cout << "------遍历a------" << endl;
printVector(a);
cout << "------把c中的从c.begin()(包括它)到c.end()(不包括它)的元素复制到b中,从a.begin()+1的位置(包括它)开始复制,覆盖掉原有元素------" << endl;
copy(c.begin(),c.end(),a.begin()+1);
cout << "------遍历a------" << endl;
printVector(a);
Vector::iterator iter = find(a.begin(),a.end(),5);
cout << "在a中的从a.begin()(包括它)到a.end()(不包括它)的元素中查找10,若存在返回其在向量中的位置"<< distance(a.begin(), iter) <<endl;
if(a!=c)
cout << "c为向量,a向量的比较操作还有 != >= > <= <:" << "false" << endl;
cout << "------清空a中的元素------" << endl;
a.clear();//清空a中的元素
if(a.empty())//判断a是否为空,空则返回true,非空则返回false
{
cout << "a为空" << endl;
}
system("pause");
return 0;
}
C++ vector用法
最新推荐文章于 2024-03-07 21:48:19 发布