随笔分类 - C++之STL、Boost
摘要:*************** map的线程安全 ******************** * * 参考1 * map要实现线程安全必须要加锁,如果使用mutex会产生大量的线程等待,可以使用读写锁, * 使用读写锁,一个线程在写的时候别的线程等待,多个线程可以同时读。 * https://www.
阅读全文
摘要:1. 工作中的代码: 2. 使用指针作为形参,不会造成编译报错,我是可以理解的。 那么请讨论下为什么使用值传递和引用作为形参,会造成编译报错? 3. 答案揭晓 boost 的mutex源码: 最终原因: 我的input_dev_param没有实现拷贝构造函数 ,而编译器默认提供的构造函数会调用各个成
阅读全文
摘要:在我的项目工程代码内#include <boost/asio.hpp>后导致了编译报错: ./include/boost/asio/detail/consuming_buffers.hpp: In member function 'boost::asio::detail::consuming_buf
阅读全文
摘要:Asio是一个建立在Boost所提供的相关组件之上的异步的网络库,可以运行在Win/Linux/Unix等各种平台之上。 不过随着C++11的发布,其对Boost的依赖也越来越少,作者又做了一个不依赖于Boost的版本。 1. 同步Timer: 调用wait后立即阻塞 #include <iostr
阅读全文
摘要:set是一种关联式容器,其特性如下: set以RBTree作为底层容器 所得元素的只有key(键)没有value(值) 不允许出现键重复 所有的元素都会被自动排序 不能通过迭代器来改变set的值,因为set的值仅有键,键不能被修改 map和set一样是关联式容器,它们的底层容器都是红黑树,但是,ma
阅读全文
摘要:代码: // boost库 条件变量 使用测试 #include <iostream> #include <boost/thread.hpp> using namespace std; boost::condition_variable cond; //关联多个线程的条件变量 boost::mute
阅读全文
摘要:BOOST库的array, 类似std库的vector. 下图所示书籍的下载地址,我的另一篇博客内有记载: https://www.cnblogs.com/happybirthdaytoyou/p/13837384.html 实验代码: #include <boost/array.hpp> #inc
阅读全文
摘要:直接贴实验代码: /******* boost 消息队列 **********/ #if 1 #include <boost/thread/thread.hpp> #include <boost/interprocess/ipc/message_queue.hpp> #include <iostre
阅读全文
摘要:BOOST库的环形队列比较灵活,前插或后插,删除队首或删除队尾元素,都支持。 只贴代码: #include <boost/circular_buffer.hpp> #include <numeric> #include <assert.h> #include <iostream> using nam
阅读全文
摘要:好记性不如烂笔头,BOOST库的移植,我也记录一下。 1. BOOST库 版本1.66.0 下载地址, 附书籍C++ BOOST库开发指南: https://download.csdn.net/download/qq_37372700/12960498 2.交叉编译: 当前环境: 编译脚本: my_
阅读全文
摘要:1. 引入。 先上代码 1 // 本事件通信类应该支持一个事件的上半部、下半部方法的注册,以及cancel_event方法的注册。(或者不采用注册,而借助信号与槽) 2 // 外界可以通过本类对外提供的wake_event接口触发本类的do_event方法的执行。 3 // do_event方法内部
阅读全文
摘要:test1: 展示了, 1 信号与槽的基本使用, 2 要获取槽函数的返回值时的注意事项 #if 1 /* 参考blog https://www.cnblogs.com/jiayayao/p/6246161.html Qt异步的实现实际上是将信号push到一个队列中,然后由统一的线程来处理信号对应的槽
阅读全文

浙公网安备 33010602011771号