• Geekband C++面向对象高级程序设计-第六周课程2


    #容器分类与各种测试1

      #容器的内存结构

    1. 容器大致可分为两种
      1. Sequence Containers;序列式容器
      2. Associative Containers;关联式容器
        1. Unordered Containers;不定序容器
    2. 容器中内存结构
      1. Sequence Containers
        1. Array;
        2. Vector;通过分配器动态扩充内存。
        3. Deque;双向队列两端可进可出(对于内存分配双向可扩充需要重点学习)。
        4. List;双向环状链表。
        5. Forward-List;相对于环状链表,其每个内存块中少一个指针(占四个字节),则对于大量数据元素其结存节省是可观的。
      2. Associative Containers
        1. Set/Multiset;Set中value与key并不区分。
        2. Map/Multimap;Map中每个value对应一个key。
        3. 补充说明,Multi中key是可重复的。没有Multi中key是不可以重复的。         
        4. Unordered Containers;
        5. HashTable Separate Chaining;通常称其为散列表

     #测试程序之辅助函数

      1.得到整型输入内容

    long get_a_target_long(){
        long target=0;
        cout << "target (0~ " << RAND_MAX <<"):";
        cin>>target;
        return target; 
    } 

      2.将整型内容转换为字符串类型

    string get_a_target_string(){
        long target=0;
        char buf[10];
        
        cout << "target (0~" << RAND_MAX <<"):";
        cin>>target;
        snprintf(buf,10,"%d",target);
        return string(buf);
    }

      #补充说明:snprintf为C中标准库内容,将其整型target存储到buf中最后string(buf)将其转换为字符串型。

      3.传入对象指针,通过强制类型转换比较其大小

    int comparelonogs(const void* a,const void* b){
        return (*(long*)a-*(long*)b);
    }
    
    int compareString(const void* a,const void* b){
        if(*(string*)a>*(string*)b)
            return 1;
        else if(*(string*)a<*(string*)b)
            return -1;
        else 
            return 0;
    }

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    3 聊天室
    freemaker分页模板
    [三]ajax重要属性
    [二]java运行原理
    [转]freemaker格式化日期
    [二]SpringMvc实践-注解
    win7下禁用ctrl alt del +上下左右键
    [一]初识SpringMVC
    Powerdesigner设置name与code不同时变化
    Ubuntu下缓冲器溢出攻击实验(可以看看问题分析)
  • 原文地址:https://www.cnblogs.com/SKY-ZL/p/8425407.html
Copyright © 2020-2023  润新知