首页 > 其他 > 详细

cartographer_common_block_queue

时间:2020-03-07 19:46:53      阅读:87      评论:0      收藏:0      [点我收藏+]

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

cartographer_common_block_queue

原文:https://www.cnblogs.com/heimazaifei/p/12435838.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!