#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