博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CLion之C++框架篇-优化框架,引入boost(三)
阅读量:6843 次
发布时间:2019-06-26

本文共 1708 字,大约阅读时间需要 5 分钟。

 
背景
 
  结合上一篇 ,继续进行框架优化!这一版优化引入一个我们日常经常使用的操作库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
  
  
cd boost_1_67_0./bootstrap.sh./b2  install
 
  
    我的机器安装了10分钟左右(时间有点长,耐心等待)
  头文件位于:/usr/local/include/boost
  库路径位于:/usr/local/lib
 
  看看都安装了哪些库
./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,如图:
 

 

 

 

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

 
 

 
case——时间与日期
 
背景:C++一直以来缺少对时间和日期的处理能力,而时间与日期又是现实生活中经常遇到的,C++程序员不得不求助于C,使用笨拙的结构和函数(struct tm,time())。Boost使用timer和date_time库完美地解决了这个问题。
 
timer库:是一个很小的库,提供简易的度量时间和进度显示功能,用于性能测试等需要计时的任务。主要包括三个组建:计时器类timer、progress_time和进度指示类progress_display。
 
数据进度
 
 

 

 获取今天、昨天、明天

 

 

 

 

更多样例: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的文件管理
 

 

 

 

 
推荐

转载地址:http://hwdul.baihongyu.com/

你可能感兴趣的文章
nginx搭建支持http和rtmp协议的流媒体服务器之---环境搭建
查看>>
Java 内存分配全面浅析
查看>>
Linux 文件与权限管理
查看>>
2016-12-7 第一次 测试
查看>>
ansible 安装与基本功能的使用
查看>>
AIX引导级别及级别修改
查看>>
获得第一批用户
查看>>
2月第一周网络安全报告:放马站点域名315个
查看>>
大数据,TB、PB、EB,你了解多少?
查看>>
CSS3中的弹性流体盒模型技术详解(一)
查看>>
linux禁用休眠
查看>>
RH413-RHEL6.4课程总结
查看>>
MaxCompute(ODPS)上处理非结构化数据的Best Practice
查看>>
想了解产品经理吗?---经典文章
查看>>
阿里云宣布 Serverless 容器服务 弹性容器实例 ECI 正式商业化
查看>>
monowall
查看>>
Kubernetes 如何打赢容器之战?
查看>>
转-MySQL服务添加到Windows系统服务中
查看>>
自己实现一个RDD,需要实现哪些函数或者部分?
查看>>
equals()的重写规则
查看>>