zoukankan      html  css  js  c++  java
  • cartographer_common_block_queue

    class BlockingQueue 是线程安全的阻塞队列,(生产者消费者模式)

    • 函数:

      • 构造函数初始化队列大小,kInfiniteQueueSize=0默认不限制容量。queue_size限制容量:通过条件变量做到.

      • 不可拷贝不可赋值

      • Push() :添加元素,容量不够时,阻塞等待

      • Pop() :删除元素,没有元素时,阻塞等待

      • Peek() :返回下一个应该弹出的元素

      • PushWithTimeout() :添加元素, 若超时则返回false

      • PopWithTimeout() :删除元素,若超时则返回false

    • 参数:

    carto 代码引用说明:

    BlockingQueue —> OrderedMultiQueue( 用来存储传感器信息 )


    小贴士:

    1.const 和 constexpr

    const 所定义的变量,一经初始化便不能修改,但是不要求const所定义变量在编译的时候就能被算出。

    constexpr 定义的变量要求,变量在程序被编译的时候就能被判定为常量,否则出错。

    总结来说,constexpr 定义的变量“常量的属性” 比const 所定义的变量更彻底(这是我自己的语言)

    2.std::deque

    ( double-ended queue ,双端队列)是有下标顺序容器,它允许在其首尾两段快速插入及删除。另外,在 deque 任一端插入或删除不会非法化指向其余元素的指针或引用。

    https://zh.cppreference.com/w/cpp/container/deque

    • push_back() 末尾插入元素
    • push_back() 启始插入元素
    • pop_back() 移除末尾元素
    • pob_front() 移除启始元素
    • front() 访问启始元素
    • back() 访问末尾元素
    • front().get() 启始元素指针

    3.size_t 和int 区别:

    size_t是一些C/C++标准在stddef.h中定义的。这个类型足以用来表示对象的大小。size_t的真实类型与操作系统有关。

    在32位架构中被普遍定义为:

    typedef   unsigned int size_t;
    

    而在64位架构中被定义为:

    typedef  unsigned long size_t;
    

    在表示大小的时候,,往往用 size_t ,不用int

  • 相关阅读:
    进入社会,我们要做哪些准备?
    2天玩转单反相机(第二讲)
    Google广告优化与工具
    Ext JS 4:模型剖析
    iphone开发教程(1) iOS大纲
    iPhone objectivec字符串类NSString的使用
    Ext JS 4倒计时:图形和图表
    Ext JS 4倒计时:开发者预览版
    WOSA介绍
    “苹果皮”与知识产权
  • 原文地址:https://www.cnblogs.com/heimazaifei/p/12435838.html
Copyright © 2011-2022 走看看