草庐IT

boost-pool

全部标签

c++ - 使用 boost 线程和非静态类函数

所以我做了一些研究,发现你可以创建一个boost::thread对象,并通过使用“this”和boost::bind等来让它从一个非静态类函数开始。它真的没有对我来说很有意义,我能找到的所有示例都在与它开始的函数相同的类中启动了boost::thread对象,因此可以使用它。然而,我正在另一个类中启动线程,所以我担心使用“this”,我会说“this”来self创建线程的类,而不是函数所在的类(我可能错了,我需要更多地了解这个“这个”家伙)。这是我遇到问题的来源的示例。ANNGUI.hclassANNGUI{private:boost::thread*GUIThread;Main*GU

c++ - 将 BOOST_FOREACH 与 std::map 一起使用

我想使用BOOST_FOREACH遍历std::map并编辑值。我不太明白。typedefstd::pairIdSizePair_t;std::mapmmap;mmap[1]=1;mmap[2]=2;mmap[3]=3;BOOST_FOREACH(IdSizePair_ti,mmap)i.second++;//mmapshouldcontain{2,3,4}here当然,这不会改变任何事情,因为我没有通过引用进行迭代。所以我用这一行代替(根据Boost文档中的示例):BOOST_FOREACH(IdSizePair_t&i,mmap)我得到编译器错误:errorC2440:'initi

c++ - 如何故意删除 boost::shared_ptr?

我有很多boost::shared_ptr对象,并且在某些时候我故意想要delete其中一些释放一些内存。(那时我知道我再也不需要指向MyClass的对象了。)我该怎么做呢?我想你不能只调用delete()使用我通过get()获得的原始指针.我见过一个函数get_deleter(shared_ptrconst&p)在boost::shared_ptr,但我不知道如何使用它,而且它旁边还写着experimental。(我想我有Boost1.38。)也许只是分配一个新的空boost::shared_ptr变量?那应该丢弃旧值并将其删除。 最佳答案

c++ - 使用 gdb 调试 C++ STL/Boost 的最佳实践

使用gdb调试,任何使用STL/boost的c++代码仍然是一场噩梦。任何使用过STL的gdb的人都知道这一点。例如,在代码here中查看一些调试session的示例运行。.我正在尝试通过收集提示来减轻痛苦。您能否评论一下我在下面收集的提示(特别是您一直在使用的提示以及您建议对它们进行的任何更改)-我列出的提示是技术性的降序。有人在用"StanfordGDBSTLutils"吗?和"UCFGDButils"?是否有一些用于boost数据结构的工具?上面的实用程序似乎不能递归使用,例如用于在一个命令中以清晰的方式打印boost::shared_ptr的vector。编写您的.gdbini

c++ - 为什么 boosts 矩阵乘法比我的慢?

我已经用boost::numeric::ublas::matrix实现了一个矩阵乘法(参见myfull,workingboostcode)Resultresult=read();boost::numeric::ublas::matrixC;C=boost::numeric::ublas::prod(result.A,result.B);另一种使用标准算法(见fullstandardcode):vector>ijkalgorithm(vector>A,vector>B){intn=A.size();//initialiseCwith0svectortmp(n,0);vector>C(n,

C++ boost : what's the cause of this warning?

我有一个带有Boost的简单C++,如下所示:#includeintmain(){std::stringlatlonStr="hello,ergr()()rg(rg)";boost::find_format_all(latlonStr,boost::token_finder(boost::is_any_of("(,)")),boost::const_formatter(""));这很好用;它将()的每次出现替换为""但是,我在编译时收到此警告:我使用的是MSVC2008,Boost1.37.0。1>Compiling...1>mainTest.cpp1>c:\work\minescou

c++ - 构建 Boost BCP

我正在尝试构建BoostC++Libraries最后两个小时,没有任何结果就停止了。由于我是C++新手,因此无法正确构建。如何使用VisualStudio2008正确构建它?我需要使用BCP工具来提取库的子集。所以我需要先建立BCP,对吧?这个怎么做?当我尝试构建它时,出现以下错误fatalerrorLNK1104:cannotopenfile'libboost_filesystem-vc90-mt-gd-1_37.lib'.我在哪里可以得到上面给出的库文件? 最佳答案 当前版本的Boost(1.50.0)使用Boost.Build

c++ boost 分割字符串

我正在使用boost::split方法来拆分字符串,如下所示:我首先确保包含正确的header以访问boost::split:#include然后:vectorstrs;boost::split(strs,line,boost::is_any_of("\t"));线条就像"testtest2test3"这就是我使用结果字符串vector的方式:voidprintstrs(vectorstrs){for(vector::iteratorit=strs.begin();it!=strs.end();++it){cout但为什么在结果strs我只得到"test2"和"test3",不应该是"

c++ - 链接 boost 日志教程时出现链接器错误( undefined reference )

我已经通过yum在Fedora20上安装了boost,并且正在尝试一些简单的示例。但是我无法从loggingtutorial编译第一个示例.使用g++-cboosttest.cc编译可以正常工作,但是当我尝试将其链接时出现很多错误g++boosttest.o-oboosttest-lboost_log-lpthread完整的错误日志:boosttest.o:Infunction`main':boosttest.cc:(.text+0x44):undefinedreferenceto`boost::log::v2s_mt_posix::trivial::logger::get()'boo

c++ - 使用 C++ Boost 的图形库

我对如何使用boost库实际创建图表感到困惑,我查看了示例代码,但没有任何评论解释它的作用。如何制作图形,并在进行时添加顶点和边? 最佳答案 这是一个简单的例子,使用邻接表并执行拓扑排序:#include#include#include#include"boost/graph/adjacency_list.hpp"#include"boost/graph/topological_sort.hpp"intmain(){//Createanadjacencylist,addsomevertices.boost::adjacency_li