草庐IT

Using-Elastic-Map-Reduce-via-Comm

全部标签

c++ - 如何将数据类型的 std::map 制作为函数指针

我有这样的数据结构enumDataType_t{INT,FLOAT};structData{DataType_Ttype;void*min;void*max;};变量min和max取决于type的值。我想知道是否有办法创建std::map之类的std::mapmyMap;myMap[INT]=??//Hereshouldbeapointertoafunctionlikeint(*FcnPtr)(Datad,boolmin);myMap[FLOAT]=??//Hereshouldbeapointertoafunctionlikefloat(*FcnPtr)(Datad,boolmin);

c++ - 我如何定义 map::iterator 列表和 list::iterator 映射

我需要一个Map::iterator列表和List::iterator映射。我该怎么做:typedefstd::listList;typedefstd::mapMap;也许我可以使用迭代器的前向声明之类的东西? 最佳答案 像这样的东西应该可以帮助你:#include#include#include#include#includestructdecl_t{typedefstd::mapmap_t;typedefstd::list>list_t;list_t::iteratorit;};intmain(intargc,constchar

c++ - VC++ 警告 C4356 : static data member cannot be initialized via derived class

以下代码发出此警告,但它似乎工作正常,因为A::st和B::st都已初始化并且实际上代表相同的字符串。据我了解,这是格式错误的代码,不应编译(我检查了clang)。我想知道为什么VC++不发出错误而是发出警告?#include#includeclassA{public:staticconststd::stringst;};classB:publicA{};conststd::stringB::st="abcd";//warningC4356:'A::st':staticdatamembercannotbeinitializedviaderivedclassintmain(){std::

c++ - `std::pair` `second` 具有不完整的类型与 `unordered_map` 树

我正在审查我的一些旧代码,我看到代码使用指针来实现Variant的树。对象。它是一棵树,因为每个Variant可以包含unordered_map的Variant*.我查看了代码,想知道为什么它不只是使用值,std::vector,和std::unordered_map,而不是Variant*.所以我继续修改它。除了一件事似乎没问题,我得到了errors:/usr/local/include/c++/6.1.0/bits/stl_pair.h:153:11:error:'std::pair::second'hasincompletetype_T2second;///@csecondisa

c++ - 未使用值警告 : C vs C++ using gcc

是否有可能使gcc像g++那样处理C++的未使用值警告?对于像C中的p&&++*p;这样的指令,有一个警告,但对于C++则没有。设置-wno-unused-value并不是真正的解决方案,因为它还会删除有用的警告(如下面的第2行)。示例:$(gcc--version|head-1;ls-lqwe.*;catqwe.x;echo$sep;gcc-c-O2-Wallqwe.c;echo$sep;g++-c-O2-Wallqwe.cc)2>&1|sed's/^//'gcc(Debian4.9.2-10)4.9.2lrwxrwxrwx1tmltml5Jul2310:12qwe.c->qwe.x

c++ - "using namespace"在 C++ 中是可传递的吗?

令我惊讶的是,以下代码在VC++2017上编译并打印“X”:#include#includenamespaceA{usingnamespacestd;}namespaceB{usingnamespaceA;}namespaceC{usingnamespaceB;stringa;}intmain(){C::a="X";std::cout看起来usingnamespacestd从命名空间A通过命名空间B进入命名空间C。这是VisualC++中的错误还是符合语言规范?我曾预计usingnamespacestd在封闭范围的末尾结束,也就是在命名空间A定义的末尾。编辑:据我所知,对thisque

c++ - 将列表初始化对插入 std::map

我正在尝试将一个只能移动的类型插入到map中。我有以下代码:#includeclassMoveable{public:Moveable()=default;Moveable(constMoveable&)=delete;Moveable(Moveable&&)=default;Moveable&operator=(constMoveable&)=delete;Moveable&operator=(Moveable&&)=default;};intmain(){std::mapmy_map;Moveablemy_moveable_1,my_moveable_2,my_moveable_3

c++ - 通过索引运算符插入到 boost::program_options::variables_map

我有一个boost::program_options::variables_map参数。现在我想像键值对一样手动插入到这个map中。示例:boost::program_options::variables_mapargsargs["document"]="A";args["flag"]=true;问题是我已经有了这两个选项desc.add_options()("document",po::value())("flag",po::value());但有时他们从命令行得到空输入。所以如果它们是空的,那么我必须在po::variables_mapargs本身中更新它们

c++ - 为什么 Visual C++ 2010 提示 'Using uninitialized memory' ?

我有一个函数,它接受一个指向缓冲区的指针,以及该缓冲区的大小(通过指针)。如果缓冲区不够大,它会返回一个错误值并在输出参数中设置所需的长度://FillBufferisdefinedinanothercompilationunit(OBJfile).//Wholeprogramoptimizationisoff.intFillBuffer(__int_bcount_opt(*pcb)char*buffer,size_t*pcb);我这样调用它:size_tcb=12;char*p=(char*)malloc(cb);if(!p)returnENOMEM;intresult;for(;;

c++ - 高效生成静态 map

我正在用C++编写一个简单的解析器,它使用字符串“触发器”到“处理程序”函数指针的映射,我的问题是什么是实现生成和访问的最“静态”和最有效的方法map?我首先考虑了一种方法,例如Parser::add_handler,这会将触发器/处理程序添加到解析器的映射中,但是,据我所知,每次运行程序时都需要执行此操作,而数据是已知的编译时间。(尽管从好的方面来说,它们只需要执行一次,而不是针对每个实例化的解析器执行一次。)然后我想到了使用虚拟方法,例如Parser中的Parser::get_handlers将在派生类中实现以返回该解析器的处理程序映射。这似乎是一种封装得更好的解决方案,尽管它需要