本文紧接着上一篇继续介绍vector容器的用法示例代码:
// Vector
#include "iostream"
using namespace std;
#include "vector"
void main21()
{
vector<int> v1;
cout << "length:" << v1.size() << endl;
v1.push_back(1);
v1.push_back(3);
v1.push_back(5);
cout << "length:" << v1.size() << endl;
cout << "头部元素:" << v1.front() << endl;//获取头部元素
// 修改 头部元素的值
v1.front() = 10;//函数返回值当左值,应该返回一个引用
v1.back() = 55;
while (v1.size()>0)
{
cout << "尾部元素:" << v1.back() << endl;//获取尾部元素
v1.pop_back();//删除尾部元素
}
}
// vector 的初始化
void main22()
{
vector<int> v1;
v1.push_back(1);
v1.push_back(3);
v1.push_back(5);
v1.push_back(7);
vector<int> v2 = v1;//对象初始化
vector<int> v3(v1.begin(),v1.end()+2);//对象初始化
}
void printV(vector<int> &v)
{
for (int i=0;i<v.size();i++)
{
cout << v[i] << " ";
}
cout << endl;
}
// vector 的遍历
void main23()
{
vector<int> v1(10);// 要提前把内存准备好 10
for (int i=0;i<10;i++)
{
v1[i] = i+1;
}
printV(v1);
}
//push_back 的强化记忆 push_back从尾部开始插入
void main24()
{
vector<int> v1(10);
v1.push_back(100);
v1.push_back(200);
cout << v1.size()<< endl;//结果为12 = 10 + 2
printV(v1);// 最后结果为:0 0 0 0 0 0 0 0 0 0 100 200
}
// 1 迭代器
// 1 3 5
// begin 指向 1 的位置 end指向 5 后面一个位置
// 当it==v1.end()时 说明这个容器已经遍历完毕
// 2 迭代器的种类
void main25()
{
vector<int> v1(10);// 要提前把内存准备好 10
for (int i=0;i<10;i++)
{
v1[i] = i+1;
}
// 正向遍历
for (vector<int>::iterator it = v1.begin();it<v1.end();it++)
{
cout << *it << " ";
}
cout << endl;
// 反方向遍历
for (vector<int>::reverse_iterator rit = v1.rbegin();rit != v1.rend();rit++)
{
cout << *rit << " ";
}
cout << endl;
}
// vector 删除
void main26()
{
vector<int> v1(10);
for (int i=0;i<10;i++)
{
v1[i] = i+1;
}
// 区间删除
v1.erase(v1.begin(),v1.begin()+3);
printV(v1);
//指定元素的位置 删除
v1.erase(v1.begin());//在头部位置删除
printV(v1);
//指定元素的值 删除
v1[1] = 2;
v1[3] = 2;
printV(v1);
for (vector<int>::iterator it = v1.begin();it<v1.end();)
{
if (*it == 2)
{
it = v1.erase(it);//当删除迭代器所指向的元素的位置时 删除元素会让it自动下移
}
else
{
it++;
}
}
printV(v1);
//插入
v1.insert(v1.begin(),100);
v1.insert(v1.end(),200);
printV(v1);
}
void main()
{
//main21();
//main22();
//main23();
//main24();
//main25();
main26();
cout << "hello..."<< endl;
system("pause");
}