Boost学习
Coco~567
关注领域:计算机视觉,深度学习,opencv,wxWidgets,octave,python等
展开
-
Boost(一)——Boost简介
Boost C++ 库是一组基于C++标准的现代库。 其源码按Boost Software License来发布,允许任何人自由地使用、修改和分发。 这些库是平台独立的,且支持大多数知名和不那么知名的编译器。 Boost库由Boost社区组织开发、维护。其目的是为C++程序员提供免费、同行审查的、可移植的程序库。Boost库可以与C++标准库完美共同工作,并且为其提供扩展功...原创 2019-12-09 14:21:08 · 2898 阅读 · 0 评论 -
Boost(十)——日期和时间
结合Boost官网该库的发明是根据教皇 Gregory XIII 在1582年颁发的格里历。这个历法也是当前使用最广泛的。库名字就是这么来的:boost::gregorian::...获取当前时间:boost::gregorian::date d = boost::gregorian::day_clock::universal_day();//universal_time() 方...原创 2018-11-22 15:42:03 · 448 阅读 · 2 评论 -
Boost(九)——文件系统
结合Boost官网这一章比较简单,没有什么特别重要的需要总结。直接上习题把:1、创建一个程序,该程序为位于应用程序当前工作目录的上一层目录中的一个名为 data.txt 的文件创建一个绝对路径。 例如,如果该程序从 C:\Program Files\Test 执行,则应显示 C:\Program Files\data.txt。#include <boost/filesyst...原创 2018-11-22 10:23:50 · 179 阅读 · 0 评论 -
Boost(七)——异步输入输出
结合Boost官网异步任务的典型例子是网络应用。不要绑定多个线程到单个 I/O 服务,而是创建多个 I/O 服务。 然后每一个 I/O 服务使用一个线程。 如果 I/O 服务的数量与系统的处理器内核数量相匹配,则异步操作都可以在各自的内核上执行。 网络通信流程客户端:boost::asio::io_serveice建立服务 ——> boost::asio::ip::t...原创 2018-11-19 10:35:39 · 924 阅读 · 0 评论 -
Boost(六)——多线程
结合Boost官网多线程的难点在于同步执行,需要“锁”控制所有权。锁有分:互斥锁,条件变量...互斥锁:boost::mutex 获取和释放成对存在,也可以用boost::lock_guard<boost::mutex> lock(mutex);boost::lock_guard在其内部构造和析构函数分别自动调用 lock() 和 unlock()类似于智能指针。...原创 2018-11-08 09:49:40 · 405 阅读 · 0 评论 -
Boost(五)——字符串处理(四):格式化输出操作
讲解格式化输出库 -> Boost.Format%占位符#include <boost/format.hpp> #include <iostream> using namespace std;int main(){ cout << boost::format("%1%.%2%.%3%") % 2018 % 11 % 2 <&l...原创 2018-11-05 14:19:16 · 1672 阅读 · 0 评论 -
Boost(五)——字符串处理(三):词汇分割操作
讲解词汇分割器库 -> Boost.Tokenizer可以在指定某个字符为分隔符后,遍历字符串的部分表达式。字符分割:boost::char_separator<char(或者wchar_t)>#include <iostream> #include <boost/tokenizer.hpp> #include <strin...原创 2018-11-02 11:13:35 · 823 阅读 · 0 评论 -
Boost(五)——字符串处理(一):字符串操作
结合Boost官网由于这一章内容过多,我将采用四个小章,精简原文四个小部分内容。第四小章还包含了题目及讲解。区域设置:setlocale(LC_ALL,“”)locale::global(std::locale("German")); //设置全局区域德语环境字符串操作:一、将字符串所有字符转成大写boost::algorithm::to_upper("")//自...原创 2018-11-01 17:44:08 · 3885 阅读 · 0 评论 -
Boost(五)——字符串处理(二):正则表达式操作
正则表达式:一些简单的描述符:. 匹配除换行符以外的任意字符\w 匹配字母或数字或下划线或汉字 等价于 '[^A-Za-z0-9_]'。\s 匹配任意的空白符\d 匹配数字\b 匹配单词的开始或结束^ 匹配字符串的开始$ 匹配字符串的结束一、字符串与正则表达式的比较正则匹配: \\w+\\s\\w+ 形式(w+ 与w差不多 ,“+”意义:至少匹配一次)...原创 2018-11-02 09:48:37 · 2746 阅读 · 0 评论 -
Boost(四)——事件处理
结合Boost官网,对于连接函数而言,有两种方法解决连接的是临时对象的成员函数。第一种:类继承:public boost::signals::trackable 当对象死亡,connect函数自动解除连接。第二种:由于信号的声明(boost::signal(void()> s 假设是void类型不带参数的函数信号)其返回值用boost::signals::scoped...原创 2018-11-01 11:46:09 · 349 阅读 · 0 评论 -
Boost(二)——智能指针
智能指针的原理基于一个常见的习语叫做 RAII (Resource Acquisition Is Initialization):资源申请即初始化。用一个动态分配的对象的地址来初始化智能指针,在析构的时候释放内存,就确保了这一点。 因为析构函数总是会被执行的,这样所包含的内存也将总是会被释放。与C++——智能指针所不同。Boost库中支持了:1、作用域指针 boost:...原创 2018-10-30 11:06:37 · 342 阅读 · 0 评论 -
Boost(三)——函数对象
接下来的几章内容我就结合Boost官网,补充下官网的难以理解的点,并且写出练习的答案,如果有不同意见的可以留言,谢谢。原题:1、简化以下程序,将函数对象 divide_by 转换为一个函数,并将 for 循环替换为用一个标准的 C++ 算法来输出数据:#include <algorithm> #include <functional> #include &...原创 2018-10-31 16:54:04 · 361 阅读 · 0 评论 -
Boost(八)——进程间通讯
结合Boost官网使用的是boost::interprocess库。共享内存通常是进程间通讯最快的形式。boost::interprocess::shared_memory_object托管共享内存boost::interprocess::managed_shared_memory设置内部数据采用 construct<template T>("name")(nu...原创 2018-11-21 14:43:41 · 707 阅读 · 0 评论