草庐IT

STL_container_type

全部标签

c++ - 错误 : argument of type char* is incompatible with parameter of type LPCWSTR

#include#includeusingnamespacestd;intmain(){char*file="d:/tester";WIN32_FIND_DATAFindFileData;HANDLEhFind;hFind=FindFirstFile(file,&FindFileData);//lineoferrorsaysargumentoftypechar*isincompatiblewithparameteroftypeLPCWSTR}我无法理解错误。错误是什么以及如何解决错误?我正在制作一个控制台应用程序,需要检查目录中是否有文件。 最佳答案

c++ - 将变体 SAFEARRAY 转换为 STL 容器的通用函数

我有一些函数可用于将2D变体SAFEARRAY转换为各种STL容器,有点像这样(仅供说明)templatestd::setSetFromSafeArray(VARIANTsrcArray){CComSafeArraysrcComArray(srcArray.parray);std::setdestContainer;for(ULONGi=0;i我觉得这不是一种非常符合C++风格的处理方式,这意味着我转换到的每个STL容器都有一个单独的函数。我的想法是为CComSafeArrays编写一个包装器和自定义迭代器,这样我就可以...std::copy(srcComArray.begin(),

c++ - boost .python : Argument types did not match C++ signature

我在python中调用C++函数时遇到一个奇怪的问题。我公开了一个我想从中调用函数的类:class_>("MyClass",init())//....def("someFunc",&MyClass::someFunc);我得到一个std::shared_ptr来自另一个类的成员变量,该类通过.def_readonly(...)公开当我尝试调用该函数时,出现以下错误:File"pytest.py",line27,intest_funccu.someFunc("string")Boost.Python.ArgumentError:PythonargumenttypesinMyClass.s

C++ 从 ‘const type* const’ 到 ‘type*’ 的无效转换

我有一个非常愚蠢的问题(我认为)。很长时间没有用C++编码,但我无法弄清楚这个问题。我有这个类:#includeclassNode{private:QList_adjacent;public:Node();boolisConnectedTo(Node*n)const;};isConnectedTo()的实现:boolNode::isConnectedTo(Node*n)const{return_adjacent.contains(n)&&n->_adjacent.contains(this);}我在return行中收到以下错误:Node.cpp:Inmemberfunction‘con

c++ - typedef type * type::* ,它是什么?

我有以下代码:structmyType{myType*ptr;};typedefmyType*myType::*other_type;第二行typedef'ining是什么?这是一个返回myType指针或其他东西的成员函数吗? 最佳答案 将other_type定义为指向myType成员的指针,其中所述成员本身是指向myType的指针。例如,您可以这样使用它:other_typex=&myType::ptr;myTypemine;mine.*x=&mine;为什么你会这样做,我不能说。 关

c++ - 所有权应该在 STL 容器调用其值的析构函数之前还是之后结束?

在下面的代码中,一个X在全局容器中注册,成为它的共享所有者。X的析构函数测试它不再是此类所有权的一部分,我希望这是被销毁的有效先决条件。#include#includestructX{~X();};std::vector>global_x_reg;X::~X(){for(autoiter=global_x_reg.begin(),end=global_x_reg.end();iter!=end;++iter)if(iter->get()==this)throw"Oops.Xgetsdestroyedwhileitisstillowned!";}intmain(intargc,char*

Xcode15报错:SDK does not contain ‘libarclite‘ at the path ‘/Applications/Xcode.app/Contents/Developer

报错内容:SDKdoesnotcontain‘libarclite’atthepath‘/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a’;tryincreasingtheminimumdeploymenttarget缺少了libarclite_iphonesimulator.a这个东西,前往文件夹查看:/Applications/Xcode.app/Contents/Developer/Toolchain

C++ STL库详解:容器适配器stack和queue的结构及功能

一、stack1.1stack的介绍1.stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。2.stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。3.stack的底层容器可以是任何标准的容器类模板或者一些其他特定的容器类,这些容器类应该支持以下操作:empty:判空操作back:获取尾部元素操作push_back:尾部插入元素操作pop_back:尾部删除元素操作4.标准容器vector、deque、

c++ - 为什么 unordered_set 操作像计数和删除返回一个 size_type?

显然,unordered_set::erase和unordered_set::count返回一些不是严格bool值的东西(从逻辑上讲,也就是说,我不是在谈论实际类型)。链接页面读取第三个版本的删除:size_typeerase(constkey_type&key);Removestheelementswiththekeyvaluekey这有一种语气,表明可能不止一个元素具有给定的键。它没有明确说明这一点,但听起来很像。现在,集合(即使是无序集合)的要点是每个元素都有一次。标准库承认bool类型的存在并将其用于bool值,如unordered_set::empty().那么,在上述情况下

c++ - 模板元编程 :why flat type is failure

我想将树型展平为平面型。示例:typedefstd::tuple,int>tup;Flat::type=>std::tuple我使用:templatestructFlat{usingtype=T;};templateclassC,typename...ARGS>structFlat>{usingtype=C;};templateclassC,typename...ARGS0,typename...ARGS1,typename...ARGS2>structFlat,ARGS2...>>:Flat>{};voidtest(){typedefstd::tuple,int>tup;static