#include<iostream>
#include<vector>
using namespace std;
class stu
{
private:
string name;
int id;
public:
stu(string n,int i):name(n),id(i){}
void show()
{
cout<<name<<"--------"<<id<<endl;
}
};
int main()
{
stu *p1=new stu("aa",11);//-------------添加容器V2
stu *p2=new stu("bb",22);
vector<stu*>v2;
v2.push_back(p1);//--------------vector::void push_back (const value_type& val);
// -------------vector::void push_back (value_type&& val);
//-------------- 该函数将一个新的元素加到vector的最后面,
//-------------- 位置为当前最后一个元素的下一个元素,
//-------------- 新的元素的值是val的拷贝(或者是移动拷贝
v2.push_back(p2);
vector<stu*>::iterator it2;//-----------------添加迭代器it2
for(it2=v2.begin();it2!=v2.end();it2++)
(*it2)->show();//-------------------此处输出结果为 aa---------11,
// bb---------22
cout<<"1========================================================================"<<endl;
vector <stu>v;//---------------------添加容器V
//添加元素//
stu s("aaa",111);
stu s2("bbb",222);
v.push_back(s);
v.push_back(s2);
//遍历//
vector<stu>::iterator it;//------------添加迭代器it
for(it=v.begin();it!=v.end();it++)
{
it->show();//----------------------注释掉18-35行,输出aaa--------111,
// bbb--------222
}
cout<<"2========================================================================"<<endl;
v.pop_back();//-------------------------pop_back()可以删除最后一个元素;
cout << "after delete back element:" << endl;
for(it=v.begin();it!=v.end();it++)
{
it->show();//---------------------结果为:aaa-------111
}
cout<<"3========================================================================"<<endl;
//访问元素//
stu s3("ccc",333);v.push_back(s3);
cout<" 最后一个元素:";
v.back().show();//-------------------- ccc----------333
cout<<"第一个元素:";
v.front().show();//------------------- aaa----------111
cout<<"4========================================================================"<<endl;
for(int i=0;i<v.size();i++)
{
v.at(i).show();//-------------此处输出为:aaa-------111和ccc--------333;
// v[i].show(); 结果一样
}
cout<<"5========================================================================"<<endl;
cout<<"第五个元素:"<<endl;
// v[4].show();
// v.at(4).show();//----------------会发生溢出
cout<<"6========================================================================"<<endl;
cout<<"第二个元素:"<<endl;
v[1].show();//--------------------- ccc------333
v.at(1).show();//-------------------- ccc------333
cout<<"7========================================================================"<<endl;
// 插入//
stu s4("ddd",444);
stu s5("eee",555);
it=v.begin();//利用迭代器,在容器最开始加上s4
v.insert(it,s4);
it=v.begin()+2;//在第三个位置加上s5
v.insert(it,s5);
for(int i=0;i<v.size();i++)
v.at(i).show();//v[i].show(); ddd--------444
// aaa--------111
// eee--------555
// ccc--------333
cout<<"8========================================================================"<<endl;
it=v.end()-2;
v.erase(it);//删除第三个数据
for(int i=0;i<v.size();i++)
v.at(i).show();//v[i].show(); ddd--------444
// aaa--------111
// ccc--------333
cout<<"9========================================================================"<<endl;
v.clear();// 清空数据;
for(int i=0;i<v.size();i++)
v.at(i).show();//v[i].show(); 没有输出任何东西
cout<<v.size()<<endl;// 0