热门IT资讯网

vector,deque,list相关操作

发表于:2024-11-25 作者:热门IT资讯网编辑
编辑最后更新 2024年11月25日,1、vector的基本操作(1)、对动态数组元素的添加和删除、获取代码如下:#include#includeusing namespace std;//数组元素的添加和删除、获取int main(vo

1、vector的基本操作

(1)、对动态数组元素的添加和删除、获取

代码如下:

#include#includeusing namespace std;//数组元素的添加和删除、获取int main(void){    vector v1;     v1.push_back(1);    v1.push_back(2);    v1.push_back(3);    cout<<"len:"< 0){         cout<

(2)、vector的初始化

代码如下:

#include#includeusing namespace std;void printV(vector &v){    for(int i = 0; i < v.size(); i++){        cout< v1;    v1.push_back(1);    v1.push_back(3);    v1.push_back(5);    v1.push_back(7);    vector v2 = v1; //对象初始化    vector v3(v1.begin(), v1.begin()+2); //对象初始化/*    //vector的遍历    for(i =a 0; i < v1.size(); i++){        v1[i] = i + 1;    }    int i;    for(i = 0; i < v1.size(); i++){        cout< v5(10); //前10个元素初始化为0;    v5.push_back(100);    v5.push_back(200);    printV(v5);    return 0;    }

(3)、vector中迭代器的正向和反向遍历

代码如下:

#include#includeusing namespace std;int main(void){    vector v1(10); //初始化空间的值都为0;    for(int i = 0; i < 10; i++){        v1[i] = i+1;    }   //迭代器//1(begin)、3、5 、(end) 当it = v1.end()的时候,说明这个容器已经遍历完了;//end()的位置,应该是5的后面;    //正向遍历    vector::iterator it;     for(it = v1.begin(); it != v1.end(); it++){        cout<<*it<<" ";    }       cout<::reverse_iterator rit;    for(rit = v1.rbegin(); rit != v1.rend(); rit++){        cout<<*rit<<" ";    }       cout<

(4)、vector中的元素删除操作

代码如下:

#include#includeusing namespace std;void printV(vector &v){    for(int i = 0; i < v.size(); i++){        cout< v1(10);    for(int i = 0; i < 10; i++){        v1[i] = i + 1;    }       //区间删除    v1.erase(v1.begin(), v1.begin()+3); //删除开始的3个元素    //指定(元素)位置删除    v1.erase(v1.begin()); //在头部删除一个    //根据元素的值    v1[1] = 2;    v1[3] = 2;    vector::iterator it;    for(it = v1.begin(); it != v1.end(); it++){        if(*it == 2){            v1.erase(it); //删除的是元素,参数是迭代器        }    }    v1.insert(v1.begin(), 100);    v1.insert(v1.end(), 200);    printV(v1);    return 0;}


2、deque的基本操作

双端数组的基本操作;

代码如下:

#include#include#includeusing namespace std;void printD(deque &d){    deque::iterator it;     for(it = d.begin(); it != d.end(); it++){        cout<<*it<<" ";    }       cout< d1;     d1.push_back(1);    d1.push_back(3);    d1.push_back(5);    d1.push_front(-11);    d1.push_front(-33);    d1.push_front(-55);    cout<<"头部元素:"<::iterator it;    it = find(d1.begin(), d1.end(), -33);    if(it != d1.end()){        cout<<"-33数组的下标是:"<


3、stack的基本操作

代码如下:

#include#includeusing namespace std;class Teacher{    public:        void printS(){            cout<<"age :"< s;    s.push(&t1);    s.push(&t2);    s.push(&t3);    while(!s.empty()){        Teacher *tmp = s.top();        tmp->printS();        s.pop();    }    return 0;}/*int main(void){    Teacher t1,t2,t3;    t1.age = 31;    t2.age = 32;    t3.age = 33;    stack s;    s.push(t1);    s.push(t2);    s.push(t3);    while(!s.empty()){        Teacher tmp = s.top();        tmp.printS();        s.pop();        }    return 0;}*//*int main(void){    stack s;    //入栈    for(int i = 0; i < 10; i++){        s.push(i+1);    }    cout<


4、queue的基本操作

代码如下:

#include#includeusing namespace std;class Teacher{    public:        int age;        char name[25];    public:        void printQ(){            cout<<"age :"< q;    q.push(&q1);    q.push(&q2);    q.push(&q3);    while(!q.empty()){        Teacher *tmp;        tmp = q.front(); //获取队列头的元素        tmp->printQ();        q.pop();    }    return 0;}/*//队列中的基础数据类型,int main(void){    queue q;    q.push(1);    q.push(2);    q.push(3);    cout<<"对头元素:"<


5、priority_queue的基本操作

代码如下:

#include#includeusing namespace std;int main(void){    priority_queue p1; //默认的情况下:是最大优先级队列;    priority_queue, less > p2;     priority_queue, greater > p3; //是最小的优先级队列    p1.push(33);    p1.push(11);    p1.push(22);    p1.push(77);    p1.push(55);    p1.push(99);    cout<<"队头元素:"<


6、list的基本操作

(1)、list的遍历

代码如下:

#include#includeusing namespace std;void printL(list &l){    list::iterator it;     for(it = l.begin(); it != l.end(); it++){        cout<<*it<<" ";    }       cout<素的位置;int main(void){    list l;    cout<<"list的大小:"<::iterator it = l.begin();    it++;    it++;    it++;    l.insert(it, 100); //STL中的插入默认是前插;    printL(l);//1、list链表的节点的index是从0位置开始的//2、insert方法都是默认的前插    return 0;}

(2)、list的删除

代码如下:

#include#includeusing namespace std;void printL(list &l){    list::iterator it;    for(it = l.begin(); it != l.end(); it++){        cout<<*it<<" ";    }    cout< l;    for(int i = 0; i < 10; i++){        l.push_back(i);    }       list::iterator it1 = l.begin();    list::iterator it2 = l.begin();    it2++;    it2++;    it2++;    l.erase(it1, it2); //删除是左闭右开的操作;[0, 3)    printL(l);    l.erase(l.begin());    printL(l);    l.insert(l.begin(), 100);    l.insert(l.begin(), 100);    l.insert(l.begin(), 100);    l.insert(l.begin(), 100);    l.insert(l.begin(), 100);    printL(l);    l.remove(100); //删除元素的方法,删除了所有值为100的元素;    printL(l);    return 0;}


0