boost库

Linux上安装使用boost入门指导

本小妞迷上赌 提交于 2020-03-20 12:55:07
Data Mining Linux上安装使用boost入门指导 获得boost boost分布 只需要头文件的库 使用boost建立一个简单的程序 准备使用boost二进制文件库 把你的程序链接到boost库 1.获得boost 下载boost_1_46_1.tar.bz2 解压 2.boost分布 boost_1_46_1.........................boost根目录   boost/.....................................所有boost头文件   libs/........................................Tests,.cpps,docs等的库文件 注意:   (1)boost根目录(通常是/usr/local/boost_1_46_1)想到$BOOST_ROOT变量中   (2)编译程序时如果用到boost库,需要指定头文件路径-I$BOOST_ROOT   (3)因为所有头文件都在boost文件夹下,并且头文件都是hpp后缀,所#include形如:     #include <boost/whaever.hpp> 3.只需要头文件的库   绝大多数的boost库都是header-noly的:它们完全由包含模板和inline函数的头文件组成,不需要单独编译和二进制库文件

ubuntu下编译安装boost库

Deadly 提交于 2020-03-20 12:54:25
环境:ubuntu 12.04 32bit,boost 1.49 前期准备:boost中,用到了别的函数库,所以为了使用boost中相应的功能,需要先安装系统中可能缺失的库  apt-get install mpi-default-dev  #安装mpi库 apt-get install libicu-dev     #支持正则表达式的UNICODE字符集  apt-get install python-dev     #需要python的话 apt-get install libbz2-dev     #如果编译出现错误:bzlib.h: No such file or directory 上述函数库装好之后,就可以编译boost库了。解压boost_1_49_0.tar.bz2,得到/boost_1_49_0,将当前工作目录切换到此文件夹下。 ./bootstrap.sh 生成bjam,上述命令可以带有各种选项,具体可参考帮助文档: ./bootstrap.sh --help。其中--prefix参数,可以指定安装路径,如果不带--prefix参数的话(推荐),默认路径是 /usr/local/include 和 /usr/local/lib,分别存放头文件和各种库。执行完成后,会生成bjam,已经存在的脚本将会被自动备份。注意,boost 1.49会在当前目录下

Boost程序库文章索引

独自空忆成欢 提交于 2020-03-17 08:13:05
一、基础教程 推荐《Boost程序库完全开发指南》(罗剑锋)的书籍。 1. Boost程序库开发指南阅读笔记 总览了这本书的主要内容 2. 读《Boost程序库完全开发指南》 与1本质相同,但更详细 3. Boost C++ 库 非常完整的文档教程,有丰富的代码示例和讲解。 4. Boost程序库入门学习 介绍了基本使用和编译方法 5. windows下编译和安装boost库 有Boost源文件目录的介绍,很好 6. C++ Boost库的编译及使用 二、付费内容 1. C++ boost库零基础教程 2. C++ Boost库编程视频精讲 以上内容来源于网络,如有侵权,实作者可以联系本作者删除。 来源: CSDN 作者: Just_So_So~ 链接: https://blog.csdn.net/chen626142293/article/details/104885732

通过boost库实现将c++封装成python包

家住魔仙堡 提交于 2020-03-08 02:36:58
资料 动态库与静态库:https://blog.csdn.net/wonengguwozai/article/details/93195827 第一部分 boost的下载与安装 1、从官网上下载boost库的压缩包 官网地址:https://www.boost.org/ ·可以下载最新版本,注意自己电脑的系统选正确 2、编译boost (1)解压boost文件 (2)命令行运行bootstrap.bat ·运行完成后会产生一个b2.exe文件 (3)命令行运行b2.exe ·等待一段时间,在命令行的最后获得提示要将两个地址放入环境。 3、配置环境 (1)注意是32位机还是64位 ·根据之前命令行结尾的提示 (2)在项目 -> vc++目录 -> 包含目录 添加解压包的地址 (3)在项目 -> vc++目录 -> 库目录 添加静态库的地址 (4)在项目 -> vc++目录 -> 包含目录 添加Anacond的include (5)在项目 -> vc++目录 -> 库目录 添加Anconda的libs 4、添加头文件 ·#include “boost/python.hpp” ·编译后会显示报错 错误 LNK1104 无法打开文件“boost_python37-vc141-mt-gd-x64-1_72.lib” 5、添加宏定义就可解决

Boost之timer库

被刻印的时光 ゝ 提交于 2020-03-04 19:10:30
摘要 : Boost中使用timer和date_time库来完美地解决了C++无法高效地处理时间和日期的问题。在此文中,介绍timer库;而date_time库在后续博文中介绍。 1. timer库的概述 timer库是一个很小的库,提供简易的度量时间和进度显示功能,可以用于性能测试等需要计时的任务,对于大多数的情况它足够使用。 timer库分为三个组件: 计时器类timer progress_timer 进度指示类progress_display 1.1 timer timer类可以测量时间的流逝,是一个小型的计时器,提供毫秒级别的计时精度和操作函数,供程序员手工控制使用,就像是个方便的秒表。 位于名字空间boost,为了使用timer组件,需要包含头文件<boost/timer.hpp>,即: #include <boost/timer.hpp> using namespace boost; 1.1.2 用法 #include <boost/timer.hpp> using namespace boost; int main() { timer t; cout << t.elapsed_max() / 3600 << "h" << endl; cout << t.elapsed_min() << "s" <<endl; cout << t.elapsed()<< "s" <<

boost--timer库

岁酱吖の 提交于 2020-03-04 17:07:38
timer库包含3个组件:timer类,progress_timer类,progress_display(进度指示类). timer: #include <boost/timer.hpp> 1 #include <iostream> 2 #include "../boost_1_48_0/boost/timer.hpp" 3 using namespace std; 4 5 int main() 6 { 7 boost::timer t; 8 cout<<t.elapsed_max() / 3600<<"小时"<<endl; 9 cout<<t.elapsed_min()<<"秒"<<endl;10 cout<<"now print elapsed time:"<<t.elapsed()<<"秒"<<endl;11 12 return 0;13 } 源码: 1 class timer 2 { 3 public: 4 timer() { _start_time = std::clock(); } // postcondition: elapsed()==0 5 // timer( const timer& src ); // post: elapsed()==src.elapsed() 6 // ~timer(){} 7 // timer& operator=( const

boost库:智能指针

心已入冬 提交于 2020-03-04 16:53:05
1. C98里的智能指针 std::auto_ptr ,本质上是一个普通的指针,通过地址来访问你一个动态分配的对象,初始化时需要传递一个由new操作符返回的对象地址。 std::auto_ptr的析构函数会调用delete操作符,释放掉其包含的对象内存。 智能指针的原理基于一个常见的习语:RAII(资源申请即初始化)。智能指针确保在任何情况下,动态分配的内存都能够得到正确释放,包括程序因为 异常而中断,原本用于释放内存的代码被跳过的场景。用一个动态分配的对象的地址来初始化智能指针,因为析构函数总是会被执行的,则包含的内存就会被释放。 2. 作用域指针 一个作用域指针独占一个动态分配的对象。其类名为:boost::scoped_ptr,一个作用域指针不能传递它所包含的对象的所有权到另一个作用域指针。作用域指针只是简单保存和独占一个内存地址,在不需要所有权传递的时候应该优先使用boost::scoped_ptr。 由于boost::scoped_ptr的析构函数中使用delete操作符来释放所包含的对象,因此boost::scoped_ptr不能用动态分配的数组来做初始化。 3. 作用域数组 与作用域指针相似。不同在于:作用域数组的析构函数使用delete[]操作符来释放所包含的对象,因此该操作符只能用于数组对象,所以作用域数组必须通过动态分配的数组来初始化。 4. 共享指针

boost库中的program_options

放肆的年华 提交于 2020-03-02 16:57:04
本文基本从官方文档中摘录出来的,便于查看。 官方文档:https://www.boost.org/doc/libs/1_57_0/doc/html/program_options.html Github:https://github.com/boostorg/program_options.git 简介 boost库时c++常用的工具库,地位仅次于c++标准库,Boost库的掌握是C++工程师的基本要求。 boost.program_options是用于命令行参数解析的,类似于optarg的作用,但是其还可以读取配置文件、环境变量。 优点: 使用更容易。定义参数处理的语法简单,库自身很小,比如转换参数值到指定的类型和保存参数值到变量的事情都是自动处理。 错误报告更友好。可报告错误的命令行参数,库能自动生成使用帮助,避免手工更新使用帮助导致的不一致。 参数能从不同的地方读取,当命令行参数不能满足要求,需要改用配置文件或环境变量,这些功能都能支持,代码改动很小。 使用示例 示例1 只处理两个选项,一个无参和一个有整数参数 program_options/example/first.cpp // Copyright Vladimir Prus 2002-2004. // Distributed under the Boost Software License, Version 1.0.

(六)boost库之内存管理shared_ptr

安稳与你 提交于 2020-03-01 23:45:22
1、shared_ptr的基本用法 boost::shared_ptr< int > sp( new int (10)); //一个指向整数的shared_ptr assert(sp.unique()); //现在shared_ptr是指针的唯一持有者 boost::shared_ptr< int > sp2 = sp; //第二个shared_ptr,拷贝构造函数 assert(sp == sp2 && sp.use_count() == 2); //两个shared_ptr相等,指向同一个对象,引用计数为2 *sp2 = 100; //使用解引用操作符修改被指对象 assert(*sp == 100); //另一个shared_ptr也同时被修改 sp.reset(); //停止shared_ptr的使用,引用计数减一 assert(!sp); //sp不再持有任何指针(空指针) assert(sp2.use_count() == 1); //sp2引用计数变为1 sp.reset( new int (20)); //sp管理一个新对象 assert(*sp == 20); 2、应用于标准容器 有两种方式可以将shared_ptr应用于标准容器(或者容器适配器等其他容器)。 一种用法是将容器作为shared_ptr管理的对象,如shared_ptr<list<T> >

Boost库-Chrono

会有一股神秘感。 提交于 2020-02-26 22:20:53
//不编译使用system库 #define BOOST_ERROR_CODE_HEADER_ONLY //不编译使用chrono库 #define BOOST_CHRONO_HEADER_ONLY //使用chrono库的扩展项 #define BOOST_CHRONO_EXTRNSIONS /* chrono中定义了时间长度表达duration duration的类摘要如下: //默认模板参数单位是秒 template<class Rep,class Period = rario<1>> class duration { public: //内部类型定义 typedef Rep rep; typedef Period period //成员 private: //时间单位计数 rep rep_; // public: //构造函数 constexpr duration( ); constexpr explicit duration(const Rep& r); constexpr duration(const duration &d); constexpr rep count( ) const; duration& opreator++( ); duration& opreator+=(const duration& d); duration& opreator*=(const