草庐IT

boost-container

全部标签

c++ - Boost.Bind 以访问 std::for_each 中的 std::map 元素

我有一个映射,它存储一个带有键的简单结构。该结构有两个成员函数,一个是const,另一个不是。我已经设法使用std::for_each调用const函数而没有任何问题,但我在调用非const函数时遇到了一些问题。structMyStruct{voidsomeConstFunction()const;voidsomeFunction();};typedefstd::mapMyMap;MyMaptheMap;//calltheconstmemberfunctionstd::for_each(theMap.begin(),theMap.end(),boost::bind(&MyStruct:

c++ - 如何在 GNU Autotools 项目中包含 Boost?

我的项目使用GNU自动工具编译(aclocal&&autoconf&&./configure&&make)。我想使用Boost,并且我希望其他人也能够编译它。我应该将Boost放在我的项目目录中,还是依赖于系统的Boost?我应该如何告诉autotools使用Boost?我用谷歌搜索并发现许多声称可以执行此操作的m4文件-但我应该将这些m4文件放在哪里?我可以将一个存储在我的/usr/share/aclocal目录中,但这对其他想要使用./configure&&make编译项目的人没有帮助。 最佳答案 TheArchive有AX_B

c++ - 将 std::vector<boost::optional<double>> 转换为 std::vector<double>

我有一个std::vector>,foo说。在这个特定的例子中,我需要一个std::vector其他vector中的任何“可选”元素映射到新vector中的0。我是否缺少针对此问题的单线解决方案?另一种选择是不尽如人意std::vectorout(foo.size());for(auto&it:foo){out.push_back(it?*it:0.0);}我欢迎基于std::optional的解决方案,即使我还没有使用该标准。 最佳答案 std::transform解决方案:std::vectorout(foo.size());s

c++ - 这个模式 : using a struct to contain a single method 有什么意义

在我们的代码中,我们有很多这种模式的情况:classouterClass{structinnerStruct{wstringoperator()(wstringvalue){//dosomethingreturnvalue;}};voiddoThing(){wstringinitialValue;wstringfinalValue=innerStruct()(initialValue);}};这样做的好处是什么:classouterClass{wstringchangeString(wstringvalue){//dosomethingreturnvalue;}voiddoThing(

java - OOP 术语 : "Container" & "Collection"

C++术语“容器”是否只是Java术语“集合”的同义词? 最佳答案 是的。不过,如果我可以在这里推测的话,C++术语容器更好地强调了所包含项目的所有权,而不是Java的集合,后者没有明确的内存所有权(由于到垃圾收集)。C++容器中的项目在容器被销毁时被销毁(因此项目被包含或拥有),在Java中如果集合本身被垃圾回收,项目可能继续存在。 关于java-OOP术语:"Container"&"Collection",我们在StackOverflow上找到一个类似的问题:

c++ - 为什么 boost::is_same<int const&, boost::add_const<int &>::value 等于 false?

我正在处理"C++TemplateMetaprogramming"byAbrahams&Gurtovoy“这实际上不在第二章中,而是我在做第一个练习(2.10、2.0)时尝试过的,这让我很困惑:#include#includestd::stringdisplay(boolb){return(b?"true":"false");}intmain(){usingnamespacestd;cout::type>::value)输出为“假”。但是,如果我删除引用,即“intconst”和“int”。输出为“真”。 最佳答案 如果你用指针尝试

c++ - Boost Spirit可以用来解析字节流数据吗?

可以使用Spirit(BoostC++库的一部分)来解析来自流的二进制数据吗?例如,它能否用于将来自套接字的数据解析为结构、字节和单个位标志?谢谢! 最佳答案 BoostSpirit允许使用ExtendedBackus–NaurForm(EBNF)定义解析器templatemeta-programming的语法.它非常灵活,在可定制的解析过程的所有阶段都使用抽象类。为了处理二进制数据流,您需要实现自定义扫描器类,因为默认类型是为文本输入量身定制的。您可以在TheScannerandParsing中进一步阅读节SpiritUser's

c++ - 如何解决 boost::shared_ptr 和使用 std::shared_ptr 之间的冲突?

如果我在此代码段中从boost::shared_ptr更改为std::shared_ptr,我将收到链接器错误。#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include//usingnamespacestd;//usingnamespaceboost;usingstd::string;usingstd::ostringstre

c++ - 如何将 boost 线程添加到 vector

我有这样的不正确的东西:vectorvec;for(intagent=1;agent也许我应该在vector中添加指向boost::thread的指针,但是我不知道如何添加动态分配的线程,我应该怎么做才能使它工作?谢谢。 最佳答案 您必须有一个支持移动语义的编译器才能使您的代码正常工作,或使用vector>使用如下代码:vec.push_back(make_shared(sellTickets,agent,numTickets/numAgents));或使用boost::thread_group.

c++ - C、C++、C++0x、pthread 和 boost 中的线程

一个关于C/C++中线程的问题...C++0x语法#includevoiddummy(){}intmain(int,char*[]){std::threadx(dummy);std::thready(dummy);...return0;}有多少线程?两个(x和y)还是三个(x、y和主要)?我可以在main中调用this_thread::yield()吗?在main中调用this_thread::get_id()会得到什么?线程语法#includevoiddummy(){}intmain(int,char*[]){pthread_tx,y;pthread_create(&x,NULL,&