vector的使用
#include <iostream>
#include <vector>
using namespace std;
void VectorInit() //构造
{
int array[10] = {1,2,3,4,5,6,7};
vector<int> v1; //无参构造
vector<int> v2(array,array + 4); //左闭右开区间拷贝
vector<int> v3(v2); //字符串地址拷贝
vector<int> v4(10,1);//10个1
for(int i = 0;i < v2.size();i ++)//通过size()大小遍历
{
cout << v2[i] << " ";
}
cout << endl;
for(int i = 0;i < v3.size();i ++)
{
cout << v3[i] << " ";
}
cout << endl;
for(int i = 0;i < v4.size();i ++)
{
cout << v4[i] << " ";
}
cout << endl;
}
void VectorAssign() //赋值
{
int array[10] = {1,2,3,4,5,6,7};
vector<int> v1;
v1.assign(array,array + 3);
for(int i = 0;i < v1.size();i ++)
{
cout << v1[i] << " ";
}
cout << endl;
v1.assign(3,9);//assgin(n,elem);将n个elem赋值到本身
for(int i = 0;i < v1.size();i ++)
{
cout << v1[i] << " ";
}
cout << endl;
}
void VectorSwap()
{
vector<int> v1(10),v2(5);
//v1.resize(10); 重置大小
//v2.resize(5);
for(int i = 0;i < 10;i ++)
{
v1[i] = i + 1;
}
for(int i = 0;i < 5;i ++)
{
v2[i] = i + 10;
}
v1.swap(v2); //交换
for(int i = 0;i < v1.size();i ++)
{
cout << v1[i] << " ";
}
cout << endl;
}
void VectorSize() //大小
{
vector<int> v1(10);
cout << "size : " << v1.size() << endl;
if(v1.empty()) //判断是否为空
{
cout << "v1 is null !" << endl;
}
else
{
cout << "v1 is not null" << endl;
}
for(int i = 0;i < v1.size(); i ++)
{
v1[i] = i + 1;
}
for(int i = 0;i < v1.size(); i ++)
{
cout << v1[i] << " ";
}
cout << endl;
v1.resize(20,1); //重置长度20,用1补齐,默认用0补齐
for(int i = 0;i < v1.size(); i ++)
{
cout << v1[i] << " ";
}
cout << endl;
v1.resize(5); //重置长度为5,多余删掉
for(int i = 0;i < v1.size(); i ++)
{
cout << v1[i] << " ";
}
cout << endl;
}
void VectorAt() //数据存取
{
vector<int> v1(10);
for(int i = 0;i < v1.size(); i ++)
{
v1.at(i) = i + 1; //at() = []
}
v1.front() = 100; //修改头部数字
v1.back() = 300; //修改尾部数字
for(int i = 0;i < v1.size(); i ++)
{
cout << v1[i] << " ";
}
cout << endl;
}
void VectorIterator() //迭代器
{
vector<int> v(10);
for(int i = 0;i < v.size(); i ++)
{
v.at(i) = i + 1;
}
for(vector<int>::iterator it = v.begin();it != v.end() ; it++) //正向
{
cout << *it << " "; //指针
}
cout << endl;
for(vector<int>::reverse_iterator rit = v.rbegin();rit != v.rend() ; rit++) //逆向迭代器
{
cout << *rit << " ";
}
cout << endl;
}
void VectorInsert() //插入,删除
{
vector<int> v1,v2;
for(int i = 0;i < 10;i ++)
{
v1.push_back(i + 1); //之后插入,自动改变大小
v2.push_back(i + 10);
}
for(vector<int>::iterator it = v1.begin();it != v1.end() ; it++)
{
cout << *it << " ";
} //遍历
cout << endl;
for(vector<int>::iterator it = v2.begin();it != v2.end() ; it++)
{
cout << *it << " ";
} //遍历
cout << endl;
v1.insert(v1.begin(),100); //将开头位置插入数字100
for(vector<int>::iterator it = v1.begin();it != v1.end() ; it++)
{
cout << *it << " ";
}
cout << endl;
v1.insert(v1.begin(),v2.begin(),v2.end());//在v1开头插入v2开头至末尾的数字
for(vector<int>::iterator it = v1.begin();it != v1.end() ; it++)
{
cout << *it << " ";
}
cout << endl;
v1.insert(v1.begin(),10,1);//在v1开头插入10个1
for(vector<int>::iterator it = v1.begin();it != v1.end() ; it++)
{
cout << *it << " ";
}
cout << endl;
v1.erase(v1.begin());//删除开头位置数字
for(vector<int>::iterator it = v1.begin();it != v1.end() ; it++)
{
cout << *it << " ";
}
cout << endl;
v1.erase(v1.begin(),v1.begin() + 5);//删除开头至之后5个数字
for(vector<int>::iterator it = v1.begin();it != v1.end() ; it++)
{
cout << *it << " ";
}
cout << endl;
v1.clear();//清除所有
for(vector<int>::iterator it = v1.begin();it != v1.end() ; it++)
{
cout << *it << " ";
}
cout << endl;
};
int main()
{
//VectorInit();
//VectorAssign();
//VectorSwap();
//VectorSize();
//VectorAt();
//VectorIterator();
VectorInsert();
return 0;
}