为了账号安全,请及时绑定邮箱和手机立即绑定

CLion之C++框架篇-优化框架,引入boost(三)

标签:
Java C++

背景

 

  结合上一篇CLion之C++框架篇-优化框架,单元测试(二),继续进行框架优化!这一版优化引入一个我们日常经常使用的操作库Boost,估算使用频率在70%以上!

 

  Boost的优势在哪里?

  1、Boost是一个功能强大、构造精巧、跨平台、开源并且完全免费的C++程序库,有着“C++‘准’标准库”的美誉。

  2、它由C++标准委员会部分成员所设立的Boost社区开发并维护;

  3、使用了许多现代C++编程技术,内容涵盖字符串处理、正则表达式、容器与数据结构、并发编程、函数式编程、泛型编程、设计模式实现等许多领域,极大地丰富了C++的功能和表现力,能够使C++软件开发更加简洁、优雅、灵活和高效。 

  4、代码开源,你可以直接看到底层代码实现,为我们学习c++提供参考标准!

 

 

boost能做什么?

  

  时间与日期

  内存管理

  字符串与文本处理

  正确性与测试

  容器与数据结构

  算法

  数学与数字

  操作系统相关

  函数与回调

  并发编程

  编程语言支持

 

 

下载安装Boost库

 

 

  下载地址:https://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.tar.gz

  

  

?

123cd boost_1_67_0./bootstrap.sh./b2  install

 

  

    我的机器安装了10分钟左右(时间有点长,耐心等待)

  头文件位于:/usr/local/include/boost

  库路径位于:/usr/local/lib

 

  看看都安装了哪些库

?

1234567891011121314151617181920212223242526272829303132./bjam --show-librariesThe following libraries require building:    - atomic    - chrono    - container    - context    - contract    - coroutine    - date_time    - exception    - fiber    - filesystem    - graph    - graph_parallel    - iostreams    - locale    - log    - math    - mpi    - program_options    - python    - random    - regex    - serialization    - signals    - stacktrace    - system    - test    - thread    - timer    - type_erasure    - wave

  

 

 

在框架中使用boost

 

 

 boost版本跟cmake版本是有直接关系的

 

编辑顶层的CMakeLists.txt,如图:

 

https://img1.sycdn.imooc.com//5b17cad60001e01d13480482.jpg

 

 https://img1.sycdn.imooc.com//5b17cae60001722314160298.jpg

 

直接在test下的代码里引用执行:

 

 https://img1.sycdn.imooc.com//5b17cb04000193ad16441602.jpg

 

case——时间与日期

 

背景:C++一直以来缺少对时间和日期的处理能力,而时间与日期又是现实生活中经常遇到的,C++程序员不得不求助于C,使用笨拙的结构和函数(struct tm,time())。Boost使用timer和date_time库完美地解决了这个问题。

 

timer库:是一个很小的库,提供简易的度量时间和进度显示功能,用于性能测试等需要计时的任务。主要包括三个组建:计时器类timer、progress_time和进度指示类progress_display。

 

数据进度

 

 https://img1.sycdn.imooc.com//5b17cb1b00012d1c09800500.jpg

https://img1.sycdn.imooc.com//5b17cb2600015db009840318.jpg

 

 获取今天、昨天、明天

 

https://img1.sycdn.imooc.com//5b17cb420001b69b18621352.jpg

 

 

 

更多样例:http://boost.ez2learn.com/doc/html/date_time/examples.html 

 

## 错误boost::gregorian::greg_month::get_month_map_ptr()"

解决方式:在CMakeLists.txt里添加 set(CMAKE_CXX_FLAGS   "-lboost_date_time-mt-d");

 

git版本管理项目

 

 

日常操作中,隐藏掉那些不需要的目录及文件,方便进行git的文件管理

 

https://img1.sycdn.imooc.com//5b17cb570001985216121098.jpg

 

https://img1.sycdn.imooc.com//5b17cb8d00011d6616941550.jpg

 

https://img1.sycdn.imooc.com//5b17cb9c0001fb3a14881422.jpg

原文出处

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消