C++STL学习笔记_(1)vector知识
#include<iostream> using namespace std; #include "vector" //数组元素的 添加和删除 void main31() { //获取元素的大小 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() = 11; v1.back() = 55; //获取头部和尾部元素 while (v1.size()>0) { cout<<"尾部元素"<<v1.back();//获取尾部的元素 v1.pop_back();//删除尾部元素 } } //vector的初始化 void main32() { //1. vector<int> v1; v1.push_back(1); v1.push_back(3); v1.push_back(5); v1.push_back(7); //2. vector<int> v2 = v1;//对象初始化 //3. vector<int> v3(v1.begin(),v1.begin()+2); } void printV(vector<int> &v) { for (int i =0;i<v.size();i++) { cout<<v[i]<<endl; } } //vector的遍历:通过数组的方式 void main33() { vector<int> v1(10);//提前把内存准备好 for (int i = 0;i<10;i++) { v1[i] = i + 1; } for (int i = 0;i<10;i++) { printf("%d\n",v1[i]); } printV(v1); } //push back的强化 void main34() { vector<int> v1(10);//提前把内存准备好 v1.push_back(100);//从数组的尾部插入元素 v1.push_back(200); cout<<"size:"<<v1.size()<<endl; printV(v1); } //迭代器 void main35() { vector<int> v1(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<<endl; } //逆序遍历 for (vector<int>::reverse_iterator rit = v1.rbegin();rit != v1.rend();rit++) { cout<<*rit<<endl; } } //vector 删除 void main36() { vector<int> v1(10); for (int i =0;i<10;i++) { v1[i] = i+1; } //区间删除 v1.erase(v1.begin(),v1.begin()+3); //指定位置删除 v1.erase(v1.begin());//在头部删除一个元素 printV(v1); cout<<endl; //根据元素的值 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 = v1.erase(it);//当删除迭代器所指向的元素的时候,erase会让it自动下移 } else { it++; } } printV(v1); cout<<endl; //插入元素 v1.insert(v1.begin(),100); v1.insert(v1.end(),100); printV(v1); } void main() { //main31(); //main33(); //main35(); main36(); cout<<"hello..."<<endl; return; }