boost 高级功能

这篇博客深入探讨了Boost库的一些高级功能,包括判断并创建路径、参数格式化、字符串切割、时间处理、序列化机制(类似Google Protobuf,支持STL对象和自定义结构的序列化)以及使用boost::lambda表达式进行函数操作。此外,还提到了泛函数的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.判断路径存在,如果不存在则创建

if ( !boost::filesystem::exists(path)) {
       boost::filesystem::create_directories(path) ;
}

2.格式化参数

_moveCmd = boost::format( "4,%1%,%2%,%3%,%4%,%5%,%6%," ) ;
_moveCmd % axle.a1 % axle.a2 % axle.a3 % axle.a4 % axle.a5 % axle.a6 ;

2.1切割字符串

#include <boost/format.hpp>
https://blog.youkuaiyun.com/huang_xw/article/details/8449045

 

3.时间

#include <boost/date_time/posix_time/posix_time.hpp>


auto t = boost::posix_time::microsec_clock::local_time() ;
std::string strTime = boost::posix_time::to_iso_string(t_now);

4.boost序列化--类似于Google Protobuff

  • 可以序列化STL对象
  • 可以序列化自己构造的结构-入侵时和非入侵式(与要定义的序列化模板函数有关)
https://www.ibm.com/developerworks/cn/aix/library/au-boostserialization/

5.boost lambda表达式

/*
    **函数功能:打印大于1的数据
    **注意:cout要接\n
*/
#include <iostream>
#include <vector>
#include <algorithm>
#include <boost/lambda/lambda.hpp>
#include <boost/lambda/if.hpp>
 
int main()
{
  std::vector<int> v;
  v.push_back(1);
  v.push_back(3);
  v.push_back(2);
 
  std::for_each(v.begin(), v.end(),boost::lambda::if_then(boost::lambda::_1>1,
      std::cout<<boost::lambda::_1<<"\n"));
}

6.泛函数

#include <boost/function.hpp>
/*
    **类似于智能指针
*/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值