boost
小白piao
一个曾经玉树临风,如今秃顶的老登儿,提供专业的C++和Python相关的知识供大家学习
展开
-
C++大法:举世闻名之BOOST大法精华浅析(十)asio的网络编程基础(小白piao分享)
文章目录asio8.4.1 网络通信技术8.4.2 ip地址和端点8.4.3 同步socket处理asio 基于操作系统移植性好的异步机制框架,该框架弹性强,目前主要用于网络通信方面,提供了很多现代C++的网络编程接口,支持TCP\ICMP\UDP等协议,asio并不局限于网络编程,它还支持串口读写、定时器、SSL等。 其使用时并不需要编译,但是依赖一些基本库诸如:boost.system和boost.datetime库,用来提供系统错误和时间的支持。其他可选库有:regex、thread和s原创 2020-12-23 13:07:14 · 857 阅读 · 0 评论 -
C++大法:举世闻名之BOOST大法精华浅析(九)并发编程进阶(小白piao分享)
书接上回。文章目录8.3.3 线程中断8.3.4 线程组8.3.5 条件变量8.3.6 future8.3.3 线程中断 thread成员函数interrupt()允许正在执行的线程被中断,被中断的线程会抛出一个thread_interrupted异常,它是一个空类,其应该在线程处理函数中捕获并且处理。如果不处理这个异常,视为线程终止。实例:#include <iostream>#include <boost/thread.hpp>#include <bo原创 2020-12-21 19:51:57 · 385 阅读 · 0 评论 -
C++大法:举世闻名之BOOST大法精华浅析(八)并发编程初识(小白piao分享)
八、并发编程 thread库为C++增加了线程处理的能力,提供了简明清晰、移植性好的线程、互斥量等概念。可以很容易的创建多线程应用。8.1 编译thread库 thread库需要datetime库的支持,datetime库也是需要编译的,顾先讨论二者的编译和配置。本文之前采用的是完全编译,所以不需要单独编译了,只是告诉大家如何单独编译。date_time库的编译:需要运行的bjam命令如下: .\bjam.exe --toolset=gcc --prefix=D:\boost --w原创 2020-12-18 18:11:29 · 319 阅读 · 3 评论 -
C++大法:举世闻名之BOOST大法精华浅析(七)rational和crc简述(小白piao分享)
七、常见数据类型7.1 rational 有理数(分数) boost.rational实现了有理数,补充了c++的概念。它基于内建整型,运算时没有精度丢失。 rational使用boost命名空间,为了使用rational的组件则需要包含<boost/rational.hpp>。创建与赋值#include <iostream>#include <boost/rational.hpp>//using namespace std;using原创 2020-12-16 14:34:20 · 365 阅读 · 1 评论 -
C++大法:举世闻名之BOOST大法精华浅析(六)容器与数据结构
文章目录六、容器与数据结构6.1 array6.2 dynamic_bitset6.3 unordered6.3.1 散列集合6.3.2 散列映射6.4 tuple六、容器与数据结构6.1 array 封装了C++标准库中的数组,为其提供了标准的STL容器接口,在对性能要求很高且不要求动态扩容的情况下使用。 其中并不能作为参数传入C语言当中的有些常见的接口(例如some_func(void* n,int len)) 本库已经收录如c++新标准的TR1库中简单例子:#includ原创 2020-12-16 14:33:08 · 297 阅读 · 0 评论 -
C++大法:举世闻名之BOOST大法精华浅析(五)字符串与文本处理(小白piao分享)
文章目录五、字符串与文本处理5.1 lexical_cast5.2 format5.3 string_algo5.4 xpressive五、字符串与文本处理字符串的表示:lexical_cast和format函数,将数值转化为字符串。对输出做出精确格式化。string_algo库中有很多字符串处理函数tokenizer:分词器xpressive:灵活且功能强大的正则表达式解析器,同时也是一个语法分析器5.1 lexical_cast “字面量转换”,类似于c库中的atoi函数。可以进行字原创 2020-12-16 14:31:32 · 227 阅读 · 0 评论 -
C++大法:举世闻名之BOOST大法精华浅析(四)noncopyable和assign(小白piao分享)
文章目录四、实用工具4.1 noncopyable4.1.1 原理:4.2 assign四、实用工具4.1 noncopyable4.1.1 原理: c++中定义一个类时,如果不明确定义拷贝构造函数和赋值运算符,编译器会为我们添加两个默认的函数来满足这些需求。这是明智的,可以让类自动支持swap函数、符合容器的拷贝语义、可以放入标准容器中处理,但有的时候我们不需要类的复制语义,希望禁止复制类的实例。**其实这个过程手写代码也很好实现,只需要将拷贝构造函数和赋值运算符重载函数放在私有成员中即可。*原创 2020-12-16 14:28:50 · 203 阅读 · 0 评论 -
C++大法:举世闻名之BOOST大法精华浅析(三)内存管理库(小白piao分享)
三、内存管理库3.1 smart_ptr3.1.1 RAII机制 为了管理内存资源,c++程序员经常采用RAII机制(资源获取即初始化),在使用资源的构造函数内申请资源,然后使用,最后在析构时释放资源。 在栈空间上申请的空间会在生命周期结束后自动调用析构,但是如果是new的对象则不会自动调用析构函数,只能在使用delete后才会释放空间,这里就存在内存泄漏的风险,如果意外导致delete语句未执行,将会产生不小的麻烦,这个内存将永久丢失了。3.1.2 智能指针 智能指针会在退出作用域时候,原创 2020-12-16 14:25:58 · 761 阅读 · 0 评论 -
C++大法:举世闻名之BOOST大法精华浅析(二)timer(小白piao分享)
二、boost下的timer2.1 timer库的用途: 性能测试时候的计时任务。精确到毫秒级别,就是一个方便的秒表。 timer库的三个组件:timerprograss_timerprograss_display : 进度指示类2.2 timer简单例子:#include <iostream>#include <boost/timer.hpp>using namespace std;using namespace boost;//注意包含boost标原创 2020-12-16 14:22:53 · 487 阅读 · 0 评论 -
C++大法:举世闻名之BOOST大法精华浅析(一)boost1.7x库配置和安装(小白piao分享)
boost库一、boost库下载、安装、编译1.1 boost库下载boost官网:https://www.boost.org/ 1、纯英文,点击: 2、点击(最新版下载): 3、进入后,根据情况选择: 4、到此处,点击对应下载后,就可以等待下载完成了。 5、如果是其他版本(我的是1.72),如下操作: 自此,完成下载。1.2 boost库的安装和编译:1、解压缩:2、进入目录:3、进入打开powershell:4、输入指令,生成b原创 2020-12-16 14:07:40 · 657 阅读 · 0 评论