zoukankan      html  css  js  c++  java
  • 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;
    }

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    JS代码判断IE不同版本
    极简技术类录--正则表达式
    Java读取系统Properties
    极简技术类录--maven
    极简技术类录--git
    JVM字节码增强
    如何避免死锁?
    有三个线程T1,T2,T3,怎么确保它们按顺序执行?
    编写两个线程,顺序输出自然顺序:1,2,3,4,...,99,100
    对文本单词进行技数,并倒序列出计数统计
  • 原文地址:https://www.cnblogs.com/SKY-ZL/p/8425407.html
Copyright © 2011-2022 走看看