iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++顺序容器(vector、deque、list)的使用详解
  • 725
分享到

C++顺序容器(vector、deque、list)的使用详解

2024-04-02 19:04:59 725人浏览 八月长安
摘要

目录一:STL(Standard Template Library),即标准模板库,是一个高效的c++程序库二:STL组件三:容器四:类型成员五:迭代器六:顺序容器七:顺序容器--向

一:STL(Standard Template Library),即标准模板库,是一个高效的C++程序库

1.从实现层次看,整个STL是以一种类型参数化(type parameterized)的方式实现的,基于模板(template)。
2.从逻辑层次来看,在STL中体现了泛型化程序设计的思想(generic programming),在这种思想里,大部分基本算法被抽象,被泛化,独立于与之对应的数据结构,用于以相同或相近的方式处理各种不同情形。

二:STL组件

1.Container(容器) 各种基本数据结构

2.AlGorithm(算法) 各种基本算法如 sort search等

3.Iterator(迭代器) 连接containers 和 algorithms

4.了解:

  • Adapter(适配器) 可改变containers或function object接口的一种组件 
  • Function object(函数对象) *
  • Allocator(分配器)*

三:容器

1.容器类是容纳、包含一组元素或元素集合的对象

2.七种基本容器:

向量(vector)、双端队列(deque)、链表(list)、集合(set)、多重集合(multiset)、映射(map)和多重映射(multimap)

四:类型成员

1.循环子操作:

  • begin():指向第一个元素
  • end():指向最后一个元素的后一个位置
  • rbegin():指向逆序的第一个元素
  • rend():指向逆序的最后一个元素的后一个位置

2.访问元素操作

  • front():访问第一个元素
  • back():访问最后一个元素
  • [ ]:无测试的下标访问(不用于 list)
  • at():有测试的下标访问(只用于 vector 和 deque)

3.堆栈和队列操作

  • push_back():将新元素加入到尾部
  • pop_back():移出最后一个元素
  • push_front():将新元素加入头部(只用于 list 和 deque)
  • pop_front():移出第一个元素(只用于 list 和 deque)

4.表操作

  • insert(p,x):将元素x加入到 p 之前
  • erase(p):删除p处的元素
  • clear():清除所有的元素

五:迭代器

迭代器是面向对象版本的指针,它们提供了访问容器、序列中每个元素的方法

六:顺序容器

顺序容器的接口

1.插入方法:push_front(),push_back(),insert(),运算符“=”

2.删除方法:pop() ,erase(),clear()

3.迭代访问方法:使用迭代器

4.其他顺序容器访问方法(不修改访问方法):front(),back(),下标[ ]运算符

七:顺序容器--向量(vector)

a.向量属于顺序容器,用于容纳不定长线性序列(即线性群体),提供对序列的快速随机访问(也称直接访问)

b.数据结构很像一个数组,所以与其他容器相比,vector 能非常方便和高效访问单个元素,支持随机访问迭代子

c.向量是动态结构,它的大小不固定,可以在程序运行时增加或减少

d.与数组不同,向量的内存用尽时,向量自动分配更大的连续内存区,将原先的元素复制到新的内存区,并释放旧的内存区。这是向量类的优点。

头文件:#include <vector>

例子:

1.push_back尾部添加

#include<iOStream>
using namespace std;
#include<vector>
 
void demo_vector();
 
int main()
{
    demo_vector();
    return 0;
}
 
void demo_vector()
{
    vector<int> v;
 
    //迭代器
    vector<int>::iterator it;
    it = v.begin(); //开始位置
   
    //在尾部添加
    v.push_back(1);
    v.push_back(12);
    //迭代器指针 遍历向量容器
    for(it = v.begin();it<v.end();it++)
    {
        cout<<" "<<*it;  //取值
    } 
    // 1 12
    cout<<endl;
}

2.insert按照位置插入

#include<iostream>
using namespace std;
#include<vector>
 
void demo_vector();
 
int main()
{
    demo_vector();
    return 0;
}
 
void demo_vector()
{
    vector<int> v;
    //迭代器
    vector<int>::iterator it;
    it = v.begin(); //开始位置
   
    //在尾部添加
    v.push_back(1);
    v.push_back(12);
    //按照位置插入
    v.insert(v.begin(),100);
 
    for(it = v.begin();it<v.end();it++)
    {
        cout<<" "<<*it;  //取值
    } 
    //  100 1 12
    cout<<endl;
}

3.获取id(成员属性)

CStaff.h

#ifndef CSTAFF_H
#define CSTAFF_H
#define ADMIN 1
#define MANAGER 2
#define WAITER 3
#include<string>
#include<iostream>
using namespace std;
 
class Staff
{
public:
    Staff();
    Staff(int id,string name,string pwd,int prole);
    ~Staff();
    int getId();
    string getName();
    string getPwd();
    int getRole();
private:
    int ID;
    string name;
    string pwd;
    int role;
};
 
#endif

CStaff.cpp

#include"CStaff.h"
#include<iostream>
using namespace std;
 
Staff::Staff()
{
}
 
Staff::Staff(int id,string name,string pwd,int prole)
{
    this->ID = id;
    this->name = name;
    this->pwd = pwd;
    this->role = prole;
}
 
int Staff::getId()
{
    return this->ID;
}
 
string Staff::getName()
{
    return this->name;
}
 
string Staff::getPwd()
{
    return this->pwd;
}
 
int Staff::getRole()
{
    return this->role;
}
 
Staff::~Staff()
{
}

main.cpp

#include<iostream>
using namespace std;
#include"CStaff.h"
#include<vector>
void demo_vector();
 
int main()
{
    demo_vector();
    return 0;    
}
 
void demo_vector()
{
    vector<Staff *> staffV;
    vector<Staff *>::iterator it;
 
    staffV.push_back(new Staff(1001,"admin","1234",ADMIN));
    staffV.push_back(new Staff(1002,"lily","1234",ADMIN));
    staffV.insert(staffV.begin(),new Staff(1003,"sam","1234",MANAGER));
 
    for(it=staffV.begin();it<staffV.end();it++)
    {
        cout<<"id:"<<(*it)->getId()<<endl; 
    }
//    id:1003
//  id:1001
//  id:1002
}

4.按照位置插入insert --- 需要迭代器指针it++偏移

#include<iostream>
using namespace std;
#include"CStaff.h"
#include<vector>
void demo_vector();
 
int main()
{
    demo_vector();
    return 0;    
}
 
void demo_vector()
{
    vector<Staff *> staffV;
    vector<Staff *>::iterator it;
 
    staffV.push_back(new Staff(1001,"admin","1234",ADMIN));
    staffV.push_back(new Staff(1002,"lily","1234",ADMIN));
 
    it = staffV.begin();  //开始位置
    it++;
    staffV.insert(it,new Staff(1003,"sam","1234",MANAGER));
 
    for(it=staffV.begin();it<staffV.end();it++)
    {
        cout<<"id:"<<(*it)->getId()<<endl; 
    }
//id:1001
//id:1003
//id:1002
}

5.尾部删除pop_back

#include<iostream>
using namespace std;
#include"CStaff.h"
#include<vector>
void demo_vector();
 
int main()
{
    demo_vector();
    return 0;    
}
 
void demo_vector()
{
    vector<Staff *> staffV;
    vector<Staff *>::iterator it;
 
    staffV.push_back(new Staff(1001,"admin","1234",ADMIN));
    staffV.push_back(new Staff(1002,"lily","1234",ADMIN));
 
    it = staffV.begin();  //开始位置
    it++;
    //按照位置插入
    staffV.insert(it,new Staff(1003,"sam","1234",MANAGER));
    //尾部删除
    staffV.pop_back();
 
    for(it=staffV.begin();it<staffV.end();it++)
    {
        cout<<"id:"<<(*it)->getId()<<endl; 
    }
//    id:1001
//  id:1003
}

6. erase按照位置删除

#include<iostream>
using namespace std;
#include"CStaff.h"
#include<vector>
void demo_vector();
 
int main()
{
    demo_vector();
    return 0;    
}
 
void demo_vector()
{
    vector<Staff *> staffV;
    vector<Staff *>::iterator it;
 
    staffV.push_back(new Staff(1001,"admin","1234",ADMIN));
    staffV.push_back(new Staff(1002,"lily","1234",ADMIN));
 
    it = staffV.begin();  //开始位置
    it++;
    //按照位置插入
    staffV.insert(it,new Staff(1003,"sam","1234",MANAGER));
    //尾部删除
    staffV.pop_back();
 
    it = staffV.begin();  //开始位置
    staffV.erase(it);//删除第一个
 
    for(it=staffV.begin();it<staffV.end();it++)
    {
        cout<<"id:"<<(*it)->getId()<<endl; 
    }
//id:1003
}

7.erase按照位置删除(迭代器指针偏移it++)

#include<iostream>
using namespace std;
#include"CStaff.h"
#include<vector>
void demo_vector();
 
int main()
{
    demo_vector();
    return 0;    
}
 
void demo_vector()
{
    vector<Staff *> staffV;
    vector<Staff *>::iterator it;
 
    staffV.push_back(new Staff(1001,"admin","1234",ADMIN));
    staffV.push_back(new Staff(1002,"lily","1234",ADMIN));
 
    it = staffV.begin();  //开始位置
    it++;
    //按照位置插入
    staffV.insert(it,new Staff(1003,"sam","1234",MANAGER));
 
    //尾部删除
    staffV.pop_back();
 
    it = staffV.begin();  //开始位置
    it++;
    staffV.erase(it);//删除第二个
 
    for(it=staffV.begin();it<staffV.end();it++)
    {
        cout<<"id:"<<(*it)->getId()<<endl; 
    }
//id:1001
}

8.size计数

#include<iostream>
using namespace std;
#include"CStaff.h"
#include<vector>
void demo_vector();
 
int main()
{
    demo_vector();
    return 0;    
}
 
void demo_vector()
{
    vector<Staff *> staffV;
    vector<Staff *>::iterator it;
 
    staffV.push_back(new Staff(1001,"admin","1234",ADMIN));
    staffV.push_back(new Staff(1002,"lily","1234",ADMIN));
 
    it = staffV.begin();  //开始位置
    it++;
    //按照位置插入
    staffV.insert(it,new Staff(1003,"sam","1234",MANAGER));
 
    cout<<"员工数量:"<<staffV.size()<<endl;
    for(it=staffV.begin();it<staffV.end();it++)
    {
        cout<<"id:"<<(*it)->getId()<<endl; 
    }
//员工数量:3
//id:1001
//id:1003
//id:1002
}

9.容器访问四种

1.迭代器指针  2.at访问方式 3.[ ]中括号访问方式  4.C++新增auto访问方式

at访问方式:

#include<iostream>
using namespace std;
#include"CStaff.h"
#include<vector>
void demo_vector();
 
int main()
{
    demo_vector();
    return 0;    
}
 
void demo_vector()
{
    vector<Staff *> staffV;
    vector<Staff *>::iterator it;
 
    staffV.push_back(new Staff(1001,"admin","1234",ADMIN));
    staffV.push_back(new Staff(1002,"lily","1234",ADMIN));
 
    it = staffV.begin();  //开始位置
    it++;
    //按照位置插入
    staffV.insert(it,new Staff(1003,"sam","1234",MANAGER));
 
    cout<<"员工数量:"<<staffV.size()<<endl;

    for(int i =0;i<staffV.size();i++)  //下标法
    {
        cout<<"id:"<<staffV.at(i)->getId()<<endl; 
    }
//员工数量:3
//id:1001
//id:1003
//id:1002
}

[ ]中括号访问方式 

#include<iostream>
using namespace std;
#include"CStaff.h"
#include<vector>
void demo_vector();
 
int main()
{
    demo_vector();
    return 0;    
}
 
void demo_vector()
{
    vector<Staff *> staffV;
    vector<Staff *>::iterator it;
 
    staffV.push_back(new Staff(1001,"admin","1234",ADMIN));
    staffV.push_back(new Staff(1002,"lily","1234",ADMIN));
 
    it = staffV.begin();  //开始位置
    it++;
    //按照位置插入
    staffV.insert(it,new Staff(1003,"sam","1234",MANAGER));
 
    cout<<"员工数量:"<<staffV.size()<<endl;

    for(int i =0;i<staffV.size();i++)  //下标法
    {
        //cout<<"id:"<<staffV.at(i)->getId()<<endl; 
        cout<<"id:"<<staffV[i]->getId()<<endl; 
    }
//员工数量:3
//id:1001
//id:1003
//id:1002
}

10.clear清空

#include<iostream>
using namespace std;
#include"CStaff.h"
#include<vector>
void demo_vector();
 
int main()
{
    demo_vector();
    return 0;    
}
 
void demo_vector()
{
    vector<Staff *> staffV;
    vector<Staff *>::iterator it;
 
    staffV.push_back(new Staff(1001,"admin","1234",ADMIN));
    staffV.push_back(new Staff(1002,"lily","1234",ADMIN));
 
    it = staffV.begin();  //开始位置
    it++;
    //按照位置插入
    staffV.insert(it,new Staff(1003,"sam","1234",MANAGER));
 
    cout<<"员工数量:"<<staffV.size()<<endl;

    for(int i =0;i<staffV.size();i++)  //下标法
    {
        //cout<<"id:"<<staffV.at(i)->getId()<<endl; 
        cout<<"id:"<<staffV[i]->getId()<<endl; 
    }
    staffV.clear();
     cout<<"员工数量:"<<staffV.size()<<endl;
//员工数量:3
//id:1001
//id:1003
//id:1002
//员工数量:0
}

八:顺序容器--双端队列--deque

a.双端队列是一种放松了访问权限的队列。元素可以从队列的两端入队和出队,也支持通过下标操作符“[]”进行直接访问。

b.与向量的对比 功能上:和向量没有多少区别,

性能上:在双端队列起点上的插入和删除操作快

头文件:#include <deque>

1.push_front头部插入

#include<iostream>
using namespace std;
#include"CStaff.h"
#include<vector>
#include<deque>
void demo_deque();
 
int main()
{
    demo_deque();
    return 0;    
}
 
void demo_deque()
{
    deque<Staff *> staffV;
    deque<Staff *>::iterator it;
 
    staffV.push_back(new Staff(1001,"admin","1234",ADMIN));
    staffV.push_back(new Staff(1002,"lily","1234",ADMIN));
 
    it = staffV.begin();  //开始位置
    it++;
    //按照位置插入
    staffV.insert(it,new Staff(1003,"sam","1234",MANAGER));
 
    //头部插入
    staffV.push_front(new Staff(1004,"lilei","1234",MANAGER));
 
    cout<<"员工数量:"<<staffV.size()<<endl;

    for(int i =0;i<staffV.size();i++)  //下标法
    {
        //cout<<"id:"<<staffV.at(i)->getId()<<endl; 
        cout<<"id:"<<staffV[i]->getId()<<endl; 
    }
//    staffV.clear();
//     cout<<"员工数量:"<<staffV.size()<<endl;
//员工数量:4
//id:1004
//id:1001
//id:1003
//id:1002
}

2.pop_front头部删除

#include<iostream>
using namespace std;
#include"CStaff.h"
#include<vector>
#include<deque>
void demo_deque();
 
int main()
{
    demo_deque();
    return 0;    
}
 
void demo_deque()
{
    deque<Staff *> staffV;
    deque<Staff *>::iterator it;
 
    staffV.push_back(new Staff(1001,"admin","1234",ADMIN));
    staffV.push_back(new Staff(1002,"lily","1234",ADMIN));
 
    //头部插入
    staffV.push_front(new Staff(1004,"lilei","1234",MANAGER));
 
    it = staffV.begin();  //开始位置
    //it++;
 
    //按照位置插入
    staffV.insert(it,new Staff(1003,"sam","1234",MANAGER));  // 3 4 1 2
 
    staffV.pop_front();  //头部删除
 
    cout<<"员工数量:"<<staffV.size()<<endl;

    for(int i =0;i<staffV.size();i++)  //下标法
    {
        //cout<<"id:"<<staffV.at(i)->getId()<<endl; 
        cout<<"id:"<<staffV[i]->getId()<<endl; 
    }
//    staffV.clear();
//     cout<<"员工数量:"<<staffV.size()<<endl;
//员工数量:3
//id:1004
//id:1001
//id:1002
}

九:顺序容器 --列表--list

a.链表主要用于存放双向链表,可以从任意一端开始遍历。链表还提供了拼接(splice)操作,将一个序列中的元素从插入到另一个序列中。

b.对比:元素的插入和删除操作对 list 而言尤为高效

与 vector 和 deque 相比,对元素的下标访问操作的低效是不能容忍的,因此 list 不提供这类操作。

头文件:#include <list>

list只支持迭代器法

for(it=staffList.begin();it!=staffList.end();it++)//迭代器指针遍历

1.只支持迭代器指针遍历

#include<iostream>
using namespace std;
#include"CStaff.h"
#include<vector>
#include<deque>
#include<list>
void demo_list();
 
int main()
{
    demo_list();
    return 0;    
}
 
void demo_list()
{
    list<Staff *> staffList;
    list<Staff *>::iterator it;
 
    staffList.push_back(new Staff(1001,"admin","1234",ADMIN));
    staffList.push_back(new Staff(1002,"lily","1234",ADMIN));
 
    //头部插入
    staffList.push_front(new Staff(1004,"lilei","1234",MANAGER));
 
    it = staffList.begin();  //开始位置
    //it++;
    //按照位置插入
    staffList.insert(it,new Staff(1003,"sam","1234",MANAGER));  // 3 4 1 2
 
    staffList.pop_front();  //头部删除
 
    cout<<"员工数量:"<<staffList.size()<<endl;
    for(it=staffList.begin();it!=staffList.end();it++)//迭代器指针遍历
    {
        cout<<"id:"<<(*it)->getId()<<endl; 
    }
//员工数量:3
//id:1004
//id:1001
//id:1002
}

2.把一个链表(单个元素)里的东西放到另外一个链表中--splice

#include<iostream>
using namespace std;
#include"CStaff.h"
#include<vector>
#include<deque>
#include<list>
void demo_list();
 
int main()
{
    demo_list();
    return 0;    
}
 
void demo_list()
{
    list<Staff *> staffList;
  
    list<Staff *> list2;//再一个链表
    list2.push_back(new Staff(1006,"mei","1234",ADMIN));//有一个1006
    
    staffList.push_back(new Staff(1001,"admin","1234",ADMIN));
    staffList.push_back(new Staff(1002,"lily","1234",ADMIN));
 
    //头部插入
    staffList.push_front(new Staff(1004,"lilei","1234",MANAGER));
 
    list<Staff *>::iterator it;
    it = staffList.begin();  //开始位置
    it++;                    //在第二个位置插入1006
  //splice move element from list to list
    staffList.splice(it,list2);
 
    cout<<"员工数量:"<<staffList.size()<<endl;
    for(it=staffList.begin();it!=staffList.end();it++)//迭代器指针遍历
    {
        cout<<"id:"<<(*it)->getId()<<endl; 
    }
    cout<<"员工数量:"<<list2.size()<<endl;
//员工数量:4
//id:1004
//id:1006
//id:1001
//id:1002
//员工数量:0
}
#include<iostream>
using namespace std;
#include"CStaff.h"
#include<vector>
#include<deque>
#include<list>
void demo_list();
 
int main()
{
    demo_list();
    return 0;    
}
 
void demo_list()
{
    list<Staff *> staffList;
 
    list<Staff *>list2;//再一链表
    list2.push_back(new Staff(1006,"mei","1234",ADMIN));  //有1006 1007
    list2.push_back(new Staff(1007,"didi","1234",ADMIN));
 
    staffList.push_back(new Staff(1001,"admin","1234",ADMIN));
    staffList.push_back(new Staff(1002,"lily","1234",ADMIN));
 
    //头部插入
    staffList.push_front(new Staff(1004,"lilei","1234",MANAGER));
 
    list<Staff *>::iterator it;
    it = staffList.begin();  //开始位置
    it++;                    //在第二个位置插入1006 1007
//splice move element from list to list
    staffList.splice(it,list2);
 
    cout<<"员工数量:"<<staffList.size()<<endl;
    for(it=staffList.begin();it!=staffList.end();it++)//迭代器指针遍历
    {
        cout<<"id:"<<(*it)->getId()<<endl; 
    }
    cout<<"员工数量:"<<list2.size()<<endl;
//员工数量:5
//id:1004
//id:1006
//id:1007
//id:1001
//id:1002
//员工数量:0
}

到此这篇关于C++顺序容器(vector、deque、list)的使用详解的文章就介绍到这了,更多相关C++ 顺序容器内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C++顺序容器(vector、deque、list)的使用详解

本文链接: https://www.lsjlt.com/news/151669.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++顺序容器(vector、deque、list)的使用详解
    目录一:STL(Standard Template Library),即标准模板库,是一个高效的C++程序库二:STL组件三:容器四:类型成员五:迭代器六:顺序容器七:顺序容器--向...
    99+
    2022-11-13
  • C++ deque容器的用法详解
    deque(双端队列)是由一段一段的定量连续空间构成,可以向两端发展,因此不论在尾部或头部安插元素都十分迅速。 在中间部分安插元素则比较费时,因为必须移动其它元素。 deque容器的...
    99+
    2022-11-12
  • C++primer超详细讲解顺序容器
    目录顺序容器概述容器库概览迭代器容器定义和初始化赋值和swap顺序容器操作向顺序容器添加元素访问元素删除元素特殊的forwa_list单向链表操作改变容器大小vector对象是如何增...
    99+
    2022-11-13
  • C++ deque容器的具体使用
     deque 是 double-ended queue 的缩写,又称双端队列容器。 和 vector 不同的是,deque 还擅长在序列头部添加或删除元素,所耗费的时间复杂...
    99+
    2022-11-12
  • C++Vector容器常用函数接口详解
    目录一、基础框架二、迭代器实现三、size capacity resize reserve四、insert,erase五、pop_back,push_back六、operator[]...
    99+
    2022-11-13
    C++ Vector容器 C++ Vector函数接口
  • C++ 标准模板库 STL 顺序容器详解
    C++ 标准模板库 STL 顺序容器 容器 数据结构 顺序性 ...
    99+
    2022-11-12
  • C++STL中vector容器的使用
    目录一、vector(1)区分size()和capacity()(2)迭代器失效(3)区分const_iterator和const iterator(4)区分reserve()和re...
    99+
    2022-11-13
  • C++ 容器 Vector 的使用方法
    目录Vector简介Vector 与数组创建 vector 的各种方法访问 vector 的元素删除元素前言: 我们都是带着问题学习,假设一个任务,也可以理解为一个问题,通过找解决方...
    99+
    2022-11-13
  • 如何在C++中使用 STL 顺序容器
    今天就跟大家聊聊有关如何在C++中使用 STL 顺序容器,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C++ 标准模板库 STL 顺序容器容器数据结构顺序性重复性支持迭代器vecto...
    99+
    2023-06-15
  • 详解C++ STL vector容器访问元素的几种方式
    学会如何创建并初始化 vector 容器之后,本节继续来学习如何获取(甚至修改)容器中存储的元素。 访问vector容器中单个元素 首先,vector 容器可以向普通数组那样访问...
    99+
    2022-11-12
  • Java 中的vector和list的区别和使用实例详解
    要了解vector,list,deque。我们先来了解一下STL。 STL是Standard Template Library的简称,中文名是标准模板库。从根本上说,STL是一些容器和算法的集合。STL可分为容器(containers)、迭...
    99+
    2023-05-31
    vector list 区别
  • C++STL标准库std::vector的使用详解
    目录1. 简介2. 使用示例3. 构造、析构、赋值3.1 std::vector::vector 构造函数3.2 std::vector::~vector 析构函数3.3 std::...
    99+
    2022-11-13
  • C++入门之list的使用详解
    目录前言构造的使用1 构造空list2 构造含n个值为val的元素3 拷贝构造4 用迭代区间迭代器接口1 正常迭代接口2 逆向迭代接口容量接口元素访问数据修改头插头删尾插尾删pos位...
    99+
    2022-11-12
  • 一文快速掌握C++双端数组容器deque的使用
    目录deque容器的概念模型deque容器的基本操作构造函数赋值操作容器大小插入和删除数据存取排序deque容器的概念模型 是双端数组,可以对头部进行插入删除操作 示意图 值得注意...
    99+
    2022-11-13
  • C语言中顺序栈和链栈的定义和使用详解
    目录栈的基本内容顺序栈定义入栈操作出栈顺序栈的缺点出栈顺序的计算方法链栈栈的基本内容 无论是我们接下来要讲的栈还是后面要讲到的队列,他们虽然在名字上不同于我们之前的顺序表或者单链表,...
    99+
    2022-11-13
    C语言 顺序栈 链栈 C语言 顺序栈 C语言 链栈
  • C++ 超详细示例讲解list的使用
    目录一、list的介绍list的介绍二、list的使用2.1 list的构造函数2.2 list迭代器的使用2.3 list相关的容量大小相关的函数2.4 list数据的访问相关的函...
    99+
    2022-11-13
  • C++ vector容器 find erase的使用操作:查找并删除指定元素
    概念:容器、迭代器、算法 STL包括容器、迭代器和算法: 容器 用于管理一些相关的数据类型。每种容器都有它的优缺点,不同的容器反映出程序设计的不同需求。容器自身可能由数组或链表实现,...
    99+
    2022-11-12
  • C++使用sort对容器排序的实现
    本文主要解决以下问题 STL中sort的使用方法 使用sort对vector的排序 使用sort对map排序 使用sort对list排序 ...
    99+
    2022-11-12
  • uniapp小程序视图容器cover-view使用详解
    目录一,cover-view1.1 基础知识1.2 各平台差异1.3 不支持的CSS附:uni-app中cover-view覆盖原生组件总结一,cover-view 首先我们需要知道...
    99+
    2022-11-13
  • 详解Spring容器的使用流程
    前言 Spring容器的API有 BeanFactory 和 ApplicationContext 两大类,他们都是顶级接口。其中ApplicationContext 是 BeanF...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作