zoukankan      html  css  js  c++  java
  • Geekband C++面向对象高级程序设计-第六周课程1

    #C++ STL标准库与泛型编程

    #写在前面

    1. 重要网站介绍
      1. www.cpluspluc.com
      2. en.cppreference.com
      3. gcc.gnu.org
    2. 重要书籍介绍
      1. THE C++ STANDARD LIBRARY
      2. STL源码剖析

    #STL简要介绍

    STL六大部件:

    1.容器。(存放数据,内存结构已经配置完成)

    2.分配器。(支持容器的数据存放)

    3.算法。(独立模板函数,对容器数据进行操作)

    4.迭代器。(算法与容器的桥梁,帮助遍历容器中的数据)

    5.适配器。(对于容器进行一些转换)

    6.仿函数。(作用类似一个函数)

    #六大部件的示例程序

      #补充说明

    1. allocator分配器的使用范例.11行中vector<int,allocator<int>> 第一个参数int指明存放int类型数据,allocator分配器指明分配int字节大小的内存。若allocator所分配内存大小内容与allocator所需要的内容不同那么会出现错误。
      count_if为算法,在STL中最重要的两部分内容之一。
      1. vi(ia,ia+6)设置初值的方式有多种,需要进一步进行知识补充。
    2. vi.begin(),vi.end()是迭代器,用来遍历容器中的数据。
    3. bind2nd为函数适配器,猜测本为比较两个对象,但现在第二个对象是数值所以所以需要进行一种转换,用到了函数适配器。
    4. not1也为一个函数适配器,否定bind2nd的返回值,返回值为是与否。
    5. less是仿函数。

    #复杂度

    1. O(1)或者O(C):常数时间。
    2. O(n):线性时间。
    3. O(log2n):次线性时间。
    4. O(n2):平方时间。
    5. O(n3):立方时间。
    6. O(2n):指数时间。
    7. O(nlog2n):介于线性以及二次方成长的中间。

    #"前闭后开"区间

      

      #解释说明:STL中各个容器所开辟的空间不一定为连续的内存空间,比如说链表,树结构。同时类似于普通数组,其最末尾.end()内不能存储内容空间大小为左闭右开。迭代器同时类似于指针,可以使用*取值,->指向内容。++,--进行遍历操作。具体如下:

      #代码示例

    Container<T> c;
    Container<T>::iterator ite = c.begin();
    for(;ite!=c.end();++ite){
    } 

    #range-based for statement(since C++11)

      #语法形式

    for(decl:coll){
        statement
    }

      #代码示例 

    for(int i:{2,3,5,7,9,13,17,19}){ cout<<i<<endl; }

    std::vector<double> vec;
    
    for(auto elem:vec){
        cout <<elem <<endl;
    }
    
    for(auto& elem:vec){
        elem* = 3;
    }

     #auto keyword

      #auto代码的更多应用

    list<string> c;
    list<string>::iterator ite;
    ite=::find(c.begin(),c.end,target);

      可改写为如下形式:

    list<string> c;
    auto ite=::find(c.begin(),c.end(),target); 
  • 相关阅读:
    Latex: 插入数学公式
    Matlab: 作图
    Random Access Iterator 2019 ICPC 徐州网络赛(树上概率DP)
    2019南京网络赛D Robots(概率DP+拓扑序)
    HDU3507 Print Article(斜率优化+单调队列)
    hdu4632(区间dp)
    POJ 1651 Multiplication Puzzle 区间DP
    暑假集训
    POJ-2955(区间DP)
    kuangbin计算几何模板转载
  • 原文地址:https://www.cnblogs.com/SKY-ZL/p/8423033.html
Copyright © 2011-2022 走看看