草庐IT

STL_container_type

全部标签

C++ 模板部分特化 : Why cant I match the last type in variadic-template?

我尝试编写一个IsLast类型特征来检查给定类型是否是std::tuple中的最后一个类型,但下面的代码无法编译。我知道如何绕过它,但我很好奇为什么编译器不喜欢它。我想一定有一些我不知道的关于可变参数模板特化的规则。代码位于:https://godbolt.org/g/nXdodx错误信息:error:implicitinstantiationofundefinedtemplate'IsLast,int>,int>'还有关于特化声明的警告:warning:classtemplatepartialspecializationcontainstemplateparametersthatca

c++ - 为什么 STL ifstream 和 ofstream 类不将 std::string 作为文件名?

这是对STL的提示。为什么他们将文件名参数作为(char*)而不是std::string?这似乎没有意义。关于这个主题还有另外两个问题:HowtoopenunicodefilenameswithSTLWindowsCodepageinteractionswithC++问题是我有很多看起来像这样的代码:std::ofstreamf(fname.c_str());当我希望它看起来像这样时:std::ofstreamf(fname);上述帖子中提到的其他问题是UTF-16与UTF-8的问题。(UTF-16可能包含会破坏POSIXAPI的NULL)。但这并不是真正的问题,因为实现可以在调用op

c++ - STL 算法是否使用多核?

C++STL算法是否使用CPU的多核底层来提高性能?如果不,是否有任何推荐的库来做STL所做的但多核,比如使用OpenMP?或者是否有任何开关可以在编译期间指定gcc指示STL使用多个内核编辑:我在带有gcc4.4的Ubuntu10.10上使用英特尔酷睿i7960处理器 最佳答案 GNUlibstdc++似乎有一个并行模式,支持STL的几个并行化特性:http://gcc.gnu.org/onlinedocs/libstdc++/manual/parallel_mode.html 关于c

c++ - 如何插入STL集?

我有问题,我不确定我是否理解STL文档。假设我有这个:#include...structfoo{intbar;};structcomp{inlinebooloperator()(constfoo&left,constfoo&right){returnleft.barfooset;//Usescomparisonstruct/classobjectcomptosortthecontainer...return0;}如何使用我自己的比较器结构将结构foo插入到set中? 最佳答案 您可以使用set::insert方法,没有什么可做的。例

在网页下载文件时,设置各种文件格式的response头中的content-type

ExtMIMEType.docapplication/msword.dotapplication/msword.docxapplication/vnd.openxmlformats-officedocument.wordprocessingml.document.dotxapplication/vnd.openxmlformats-officedocument.wordprocessingml.template.docmapplication/vnd.ms-word.document.macroEnabled.12.dotmapplication/vnd.ms-word.template.ma

c++ - 如何以标准方式组合 type_traits 中的条件

例如,我想使用类型T仅当std::is_pointer和std::is_const评估为true_type.当然还有一个简单的方法是这样的:templatevoidf(Tt,std::true_type,std::true_type){}templatevoidf(Tt){f(t,std::is_pointer{},std::is_const{});}但是我想要这样的东西:templatevoidf(Tt,std::true_type){}templatevoidf(Tt){f(t,std::and,std::is_const>{});}标准库是否包含类似std::and的内容??如果

c++ - Visual Studio : Macro for checking configuration type (exe/dll)

是否有可用于检查visualstudio中当前配置类型的宏?根据当前设置,我想包含一个main或dllmain函数:#IFDEFCONFIGURATION_TYPE_EXEintmain(intargc,char**argv){...}#ELSEIFCONFIGURATION_TYPE_DLLBOOLAPIENTRYDllMain(HANDLEhModule,DWORDul_reason_for_call,LPVOIDlpReserved){returnTRUE;}#ENDIF 最佳答案 如果是dll,那么_WINDLL将被定义为继

C++ typedef 和返回类型 : how to get the compiler to recognize the return type created with typedef?

#includeusingnamespacestd;classA{typedefintmyInt;intk;public:A(inti):k(i){}myIntgetK();};myIntA::getK(){returnk;}intmain(intargc,char*constargv[]){Aa(5);cout在这一行中,myInt未被编译器识别为“int”:myIntA::getK(){returnk;}如何让编译器将myInt识别为int? 最佳答案 typedef创建同义词,而不是新类型,因此myInt和int已经相同。问题

c++ - 具有重复键的 STL 优先级队列 - 这可能吗?

我需要将我的A类对象存储在某种数据结构中。此外,我希望它们根据一个键自动排序,在我的例子中是另一个类B的嵌入对象。因此我决定使用STL优先级队列。然而,有可能2个或更多对象B具有相同的键值。我的问题:STL优先级队列是否允许重复键?如果确实如此,我应该考虑什么以及我应该使用哪个谓词?我知道我可以使用多重集,但它的大O符号性能更差,这就是我想使用优先级队列的原因。 最佳答案 DoestheSTLpriorityqueueallowduplicatekeys??是的。IfitdoeswhatshouldIconsider相等元素之间的顺

c++ - STL列表、 vector 和集合的底层数据结构是什么?

STL列表、vector和集合的底层数据结构是什么?我的解决方案:vector:(动态分配)数组列表:?设置:堆(或所有叶节点尽可能靠左的二叉树,并将最小/最大元素保持在顶部)对吧? 最佳答案 根据评论,澄清一下,这些是最常见的选择,但根据所需的复杂性和其他因素,这些实现的支持可能会有所不同:Vector=动态调整数组大小列表=DoublyLinkedList设置=Red/BlackTree(平衡二叉搜索树)我认为您可能会混淆堆和BST。堆被形象化为一棵树,但它实际上建立在可索引列表结构(例如数组或vector)之上。C++通过al