zoukankan      html  css  js  c++  java
  • 哇的一声哭出来 pnq

    用auto声明的变量必须初始化(auto是根据后面的值来推测这个变量的类型,如果后面没有值,自然会报错)
    不应该用 equal() 来比较来自于无序 map 或 set 容器中的元素序列。
    任何两个容器对象,只要它们的类型相同,就可以用 <、<=、>、>=、==、!= 进行词典式的比较运算。

    STL 中的许多算法(即函数模板),如排序、查找等算法,在执行过程中会对容器中的元素进行比较。
    这些算法在比较元素是否相等时通常用运算符进行,比较大小通常用<运算符进行,
    因此,被放入容器的对象所属的类最好重载==和<运算符,以使得两个对象用==和<进行比较是有定义的。

    顺序容器有以下三种:

    可变长动态数组 vector、
    双端队列 deque、
    双向链表 list。

    关联容器有以下四种:

    set、multiset、
    map、multimap。

    除了以上两类容器外,STL 还在两类容器的基础上屏蔽一部分功能,突出或增加另一部分功能,实现了三种容器适配器:
    栈 stack、队列 queue、优先级队列 priority_queue

    容器都是类模板。它们实例化后就成为容器类。用容器类定义的对象称为容器对象

    任何两个容器对象,只要它们的类型相同,就可以用 <、<=、>、>=、==、!= 进行词典式的比较运算。

    所有容器都有以下两个成员函数:
    int size():返回容器对象中元素的个数。
    bool empty():判断容器对象是否为空。

    顺序容器和关联容器还有以下成员函数:
    begin():返回指向容器中第一个元素的迭代器。
    end():返回指向容器中最后一个元素后面的位置的迭代器。
    rbegin():返回指向容器中最后一个元素的反向迭代器
    rend():返回指向容器中第一个元素前面的位置的反向迭代器
    erase(...):从容器中删除一个或几个元素。该函数参数较复杂,此处省略。
    clear():从容器中删除所有元素。

    如果一个容器是空的,则 begin() 和 end() 的返回值相等,rbegin() 和 rend() 的返回值也相等。
    注意end()指向的是最后一个元素的下一个位置,所以访问最后一个元素
    的正确操作为:end() - 1;

    反向迭代器将自增(和自减)的含义反过来了:对于反向迭代
    器,++ 运算将访问前一个元素,而 -- 运算则访问下一个元素。
    虽然颠倒自增和自减这两个操作符的意义似乎容易使人迷惑,但是它让程序员可以透明地向前或向后处理容器。
    例如,为了以降序排列 vector,只需向 sort传递一对反向迭代器:

    顺序容器还有以下常用成员函数:
    front():返回容器中第一个元素的引用。
    back():返回容器中最后一个元素的引用。
    push_back():在容器末尾增加新元素。
    pop_back():删除容器末尾的元素。
    insert(...):插入一个或多个元素。该函数参数较复杂,此处省略。

    /*
    *二维数组
    */
    vector<vector<int> > array(m); //这个m一定不能少//vector<int> array[m];
    //初始化一个m*n的二维数组
    for(int i=0;i<m;i++) 
    {
        array[i].resize(n);
    }
    //遍历赋值
    for(i = 0; i < array.size(); i++)
    {
       for (j = 0; j < array[0].size();j++) 
        {   
            array[i][j] = (i+1)*(j+1); 
        } 
    }
    
    vector< vector<int> > maze(8, vector<int> (12, 0));
    

    u8是unsigned char,u16是unsigned short,u32是unsigned long

    在stdint.h中:
    typedef unsigned char uint8_t;
    typedef unsigned short uint16_t;
    typedef unsigned long uint32_t;

    在stm32f10x.h 中:
    typedef uint32_t u32;
    typedef uint16_t u16;
    typedef uint8_t u8;
    有时间再搞:-)

  • 相关阅读:
    虚拟化基础介绍
    Linux---1.06.用户和用户组管理
    1.vmware tools的安装
    5.无法更新包,yum源更换无效
    Linux---1.05.软件包管理
    4.Vim的安装及待解决问题
    NSWorkspace的mountedLocalVolumePaths
    修改系统默认的NSButton的按下变灰
    NSParagraphStyleAttributeName
    - (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender
  • 原文地址:https://www.cnblogs.com/CSE-kun/p/14117247.html
Copyright © 2011-2022 走看看