草庐IT

Boost-asio

全部标签

c++ - boost 随机数库,对不同的变量生成器使用相同的随机数生成器

似乎可以使用以下代码从特定的正态分布中生成随机数:floatmean=0,variance=1;boost::mt19937randgen(static_cast(std::time(0)));boost::normal_distributionnoise(mean,variance);variate_generator>nD(randgen,noise);floatrandom=nD();这很好用,但是,我希望能够从多个分布中提取数字,即有人会这样想:floatmean1=0,variance1=1,mean2=10,variance2=0.25;boost::mt19937rand

c++ - 如何构建 boost 静态库?

这有效,但不会构建boost库的静态版本(也许我错了?)bjam--toolset=gcc--prefix=C:\boost_1_49_0-mingwinstall尝试发出以下命令:bjam--toolset=gcc--prefix=C:\boost_1_49_0-mingw--build-type=completeinstall但它不起作用。 最佳答案 您应该能够使用link=static选项让您将库编译到二进制文件中而不需要动态库:sudo./b2link=static检查您的阶段目录以确保它位于正确的位置,然后重新安装到您包含

c++ - boost:asio 线程池实现,用于偶尔同步的任务

我有一个“主要”函数,它在每个时间步执行一次许多小的、独立的任务。但是,在每个时间步之后,我必须等待所有任务完成才能继续。我想让程序多线程化。我尝试过使用boost-offshoot线程池实现,我尝试过使用线程的(共享指针)vector,我尝试过asio线程池的想法(使用io_service,建立一些工作,然后将运行分发到线程并将处理程序发布到io_service)。所有这些似乎都有很多开销为我的“许多小任务”创建和销毁线程,我想要一种方法,最好使用asio工具,来实例化一个io_service,一个thread_group,将处理程序发布到io_service,并在发布更多任务之前等

c++ - 如何配置 Qt Creator 以在 Windows 中使用 Boost

我在Ubuntu中创建了一个Qt项目,一切都很顺利。但是,我还需要在Windows上部署它。它使用Boost库(大问题)。我花了好几个小时寻找解决方案,但没有成功。我尝试安装Boost库并将其与mingw链接;我想我错过了什么。这是我所做的并下载了最新版本:1)运行.\bootstrap2)然后.\b2--prefix=C:\boostinstall遗憾的是没有正确安装。我只有2个文件夹(bin和share)但没有标题。但是,在这里(http://nuwen.net/)我找到了一个包(Mingw+Boost和其他库)。这有我需要的一切。现在我认为问题出在.pro文件上,因为我有很多un

c++ - 什么是 boost::variant 内存和性能成本?

boost::variant似乎是一个强大的容器,可以操纵一组异构类型。我想知道它的成本。在内存中,我认为它占用了最大类型的大小加上一个代表which()的整数。对于apply_visitor(),我觉得它的性能非常好,可以直接调用很多if之外的函数。我的观点正确吗? 最佳答案 你几乎是对的。boost::variant的大小是任何元素的最大大小,根据最大对齐的需要四舍五入,再加上某个整数的大小,并且再次围捕。考虑这些类型的变体,假设标签是uint32_t:structfoo{uint32_tvalue[3];};//size12,

C++:你会选择 boost::date_time 还是 icu::date/time 库?

我的应用程序需要自定义时间和日期设置功能。我检查了ICU和boost::date_time库。从完整性的角度来看,两者似乎都符合我的要求。我想知道两者之间是否有任何偏好,依据是什么?哪个会在性能上得分? 最佳答案 如果没有关于您的特定用例和环境的更多信息,就无法给出关于哪个库是否优于另一个库的明确答案。正如Xeo所建议的那样,分析是解决性能问题的最佳方式。如果您的用例包括“一般”日期/时间操作(即,您还不知道您需要的所有日期/时间操作),有几个选择你必须做。作为Boost.DateTimedocumentation解释说,您可以在这

c++ - Boost.Intrusive 和 unordered_map

我希望使用侵入式unordered_map。由于某种原因,库中只有一个unordered_set。还有一个侵入式哈希表,但我不确定它是否具有相同的功能,也没有相同的接口(interface)。我错了吗,我错过了unordered_map链接?如果我没有,是否有教程可以帮助我实现一个? 最佳答案 这是一个有趣的问题。Boost.Intrusive似乎没有提供任何map接口(interface),无论是有序的还是无序的。它有很多实现类型,可以很好地作为有序(红黑树、AVL树、splay树)和无序(哈希表)映射。但是没有map,我无法告诉

c++ - 使用带有字符串定界符的 boost::tokenizer

我一直在寻找boost::tokenizer,我发现文档非常薄。是否可以让它标记一个字符串,例如“dolphin--monkey--baboon”,并使每个单词成为标记,以及每个双破折号成为标记?从示例中我只看到允许使用单个字符定界符。对于更复杂的定界符,库是否不够先进? 最佳答案 使用iter_split允许您使用多个字符标记。下面的代码将产生以下内容:海豚猴子狒狒#include#include#include#include//codestartsherestd::strings="dolphin--mon-key--babo

c++ - boost::unordered_map.emplace(Args&&... args) 如何工作?

根据documentation它:Insertsanobject,constructedwiththeargumentsargs,inthecontainerifandonlyifthereisnoelementinthecontainerwithanequivalentkey.但是唯一可以插入到unordered_map中的对象的类型是std::pair(因为要插入的对象需要键和值),众所周知,它采用恰好有两个参数的构造函数。那么为什么要使用可变函数形式呢?当然,我对此完全不理解。 最佳答案 参见this关于emplace_bac

c++ - 使用 boost::thread 的并行任务比使用 ppl 或 OpenMP 获得更好的性能

我有一个可以并行化的C++程序。我正在使用VisualStudio2010,32位编译。简而言之,程序的结构如下#definenum_iterations64//somenumberstructresult{//somestuff}resultbest_result=initial_bad_result;for(i=0;i由于每个some_computations()都是独立的(读取了一些全局变量,但没有修改全局变量)我并行化了内部for循环。我的第一次尝试是使用boost::thread,thread_groupgroup;for(j=0;j结果不错,但我决定多尝试一下。我尝试了Op