• C++容器


    C++是一种静态的数据类型,在编译器进行类型的检查,代码执行是从上到下的执行,以函数为执行单元。因他是面向过程的。
    默认的int,short,long都是带符号类型的,添加unsigned 进行修饰,可以设置为无符号类型,表示不接收负数,节约空间。
    注:C语言运行时只有堆和栈内存,数据段,代码段,BSS段在编译时由编译器决定。

    一,数组

    数组的定义格式是:类型 数组名【元素个数】,也可赋初始值,不赋值时默认是0,数组的定义是一块连续的内存空间,其大小创建时已经固定。

    int  arr[5]={1,4,5};
    
    • 1

    使用时,可以根据下标直接访问
    例如arr[2]就是取出数组中下标为2的元素值。
    可以使用负值下标。

    二,字符串

    使用双引号括起来的就是字符串常量。“\0”是标识字符串结束的一串字符。
    字符串是基于字符数组进行扩展实现的。
    cout用于字符串输出,cin用于字符串输入。
    字符串变量的定义
    string str,str1;
    也可以在定义时赋初始值,这样可以直接操作字符串。直接使用字符串的+或=操作。

    三,结构体

    描述一个复杂对象组合成一个整体时可以使用结构体。
    例如

    struck book{
        char  author;
        int  age;
    }
    
    • 1
    • 2
    • 3
    • 4

    使用了面向对象的思想
    共用体
    允许在相同的位置存储不同的数据类型,提供了一种使用相同内存位置的有效方式,同时只有一个对象有赋值。
    使用时,用union修饰。

    union MyStudent{
        
    }
    
    • 1
    • 2
    • 3

    四,动态数组

    1.vector

    动态数组,长度动态可变,在运行时,动态赋值,不用考虑空间问题,可以通过下标和迭代器访问,可以整体赋值。
    使用时需要添加头文件
    定义时需要指出数据类型和规模,规模可以是变量。
    例如
    vector v1;

    2.array

    效率比vector 高,规模固定
    例如

    array<int  ,5>  a1;
    
    • 1

    相较于数组,array可以直接互相赋值。

    3.valarray

    基于Array的基础上实现了更加强大的扩展功能
    例如
    1)返回包含的元素数
    2)所有元素总和
    3)返回最大的元素
    4)返回最小的元素

    4,二维数组

    定义

    int  a[3][4];表示,定义了一个有三元元素的数组,每个元素是一个长度为4的数组
    int  a[3][4]  ={{1,2,3,4},{5,3,2,1},{3,4,5,6}}
    
    • 1
    • 2

    在C++中容器分为序列式和关联式,存放一组同类型的对象。

    六,Set

    容器内元素唯一,使用end表示结尾

    set<int> m_set;
    m_set.insert(1);
    m_set.insert(2);
    m_set.clear();//清空set
    
    • 1
    • 2
    • 3
    • 4

    七,Map

    键值对的存储容器,键值不能为空,使用时需要导入引用

    map<string int> m_map;
    m_map.insert("zhans", 1);
    
    • 1
    • 2

    基本方法

    函数名功能
    my_map.insert()按照数组直接赋值 插入
    my_map.find()查找一个元素
    my_map.clear()清空
    my_map.erase()删除一个元素
    my_map.size()map的长度大小
    my_map.begin()返回指向map头部的迭代器
    my_map.end()返回指向map末尾的迭代器
    my_map.rbegin()返回一个指向map尾部的逆向迭代器
    my_map.rend()返回一个指向map头部的逆向迭代器
    my_map.empty()map为空时返回true
    my_map.swap()交换两个map,两个map中所有元素都交换

    八,迭代器

    一个抽象的指针,可以遍历容器中所有的对象,不同的容器对应着不同的迭代器,被定义为容器类的公有内嵌类。

    iterated find_ar(iterator  ar,int  n,const  double  &val){
        for(int i=0;i
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    容器的迭代器一般提供两个函数,begin和end 标识容器开头和结尾。

  • 相关阅读:
    类和对象收尾
    rust学习
    有关范数的学习笔记
    C语言日志库zlog基本使用
    【FFmpeg】AVFrame结构体
    [安卓java毕业设计源码]精品基于Uniapp+SSM实现的记账app[包运行成功]
    融合黄金正弦与sigmoid连续化的海鸥优化算法-附代码
    05-内存分配与回收策略
    给 Linux0.11 添加网络通信功能 (Day1: 确认 qemu-system-i386 提供了虚拟网卡)
    Rycky9.0安装k8s1.25.0+containerd
  • 原文地址:https://blog.csdn.net/zdc9023/article/details/126230636