草庐IT

set_null

全部标签

c++ - 对 null 对象的函数调用返回的 bool 值

在C++中对空对象进行函数调用时返回的bool值是什么?ClassDummy*dummy=NULL;if(!dummy->dummy_function(1,2,3)){//DoSomething}根据C++11标准,这不应该返回错误吗? 最佳答案 除非dummy已在命名空间范围内声明,否则它未初始化且其值未指定,即它可能为null也可能不为null。在nullptr或指向无效内存的指针上调用成员函数是未定义的行为。你可能getawaywiththecorrectresult如果您调用的成员函数不访问该类的任何其他数据成员;换句话说,

c++ map/set 迭代器不可取消引用

我想向您请教,因为我是初学者,在互联网上找不到合适的答案。我收到此错误:调试断言失败-映射/设置迭代器不可取消引用在看起来像这样的行:pointA=active->pointNext(timeNext);使用pointNext()函数,我看到一切正常,并且关注active,我有:active=setS.data.end();更多信息:active是multiset::const_iteratorsetS有:setS.Q、setS.W、setS.T和setS.data,其中setS.data在方括号内有0。当我在.cpp文件中有多重迭代器声明时,在调试期间我无法进入以查看事件内部的内容,

c++ - 如何创建 NULL/空 DACL?

我需要向所有人授予我正在创建的命名管道的访问权限。我知道这样做的方法是创建一个NULL/空DACL并将其传递给CreateNamedPipe。如何创建NULLDACL?有人告诉我,这与为LPSECURITY_ATTRIBUTES传递NULL指针不同。 最佳答案 像这样:SECURITY_DESCRIPTORSD;InitializeSecurityDescriptor(&SD,SECURITY_DESCRIPTOR_REVISION);SetSecurityDescriptorDacl(&SD,TRUE,NULL,FALSE);为了

c++ - 奇怪的错误,set<int>::begin() 总是返回 const 迭代器

为什么set.begin()总是返回一个const迭代器而不是标准迭代器?35inttest(){36std::setmyset;37myset.insert(2);38myset.insert(3);39int&res=*myset.begin();40returnres;41}test.cpp:39:error:invalidinitializationofreferenceoftype‘int&’fromexpressionoftype‘constint’ 最佳答案 它没有返回const_iterator,而不是std::se

c++ - 使用 IOCP 时,我应该将 WSAOVERLAPPED 的 hEvent 设置为 NULL 还是 WSAEVENT 对象的有效句柄?

根据MSDN:hEvent:IfanoverlappedI/OoperationisissuedwithoutanI/Ocompletionroutine(theoperation'slpCompletionRoutineparameterissettonull),thenthisparametershouldeithercontainavalidhandletoaWSAEVENTobjectorbenull.当我使用IOCP时,当我调用WSASend()或WSARecv()时,我将NULL传递给它们的最后一个参数(即lpCompletionRoutine):WSASend(pIoRe

红黑树,以及其在C++的set、map等数据结构中应用

红黑树介绍:红黑树(Red-BlackTree)是一种自平衡的二叉搜索树,它在插入和删除操作后通过一系列的旋转和着色操作来维持平衡。红黑树的命名来自于节点上的额外颜色属性,每个节点要么是红色,要么是黑色。红黑树的特性:1.每个节点要么是红色,要么是黑色。2.树的根节点是黑色的。3.所有叶子节点(NIL节点,空节点)都是黑色的。4.如果一个节点是红色的,则其子节点必须是黑色的。5.从根节点到叶子节点的每条路径上,黑色节点的数量相同。这些特性保证了红黑树的关键性质:任意节点到其子孙节点的最长简单路径不超过其他路径的两倍,从而确保了红黑树的平衡性。在C++的标准库中,`std::set`和`std:

c++ - 有人可以打破这条线 gcc -E -dM - </dev/null

刚刚遇到这个让我惊呆了的人:gcc-E-dM-这部分让我感到困惑:- 最佳答案 这给出了gcc中所有预定义宏的列表。-E表示运行预处理器。-dM表示从预处理器中转储预定义的宏。-用于从标准输入读取,而/dev/null仅提供一个空源文件。 关于c++-有人可以打破这条线gcc-E-dM- https://stackoverflow.com/questions/1529051/

c++ - 在模板中返回 std::set<T>::iterator 时出错

我正在围绕std::set制作一个模板包装器。为什么Begin()函数声明会出错?templateclassCSafeSet{public:CSafeSet();~CSafeSet();std::set::iteratorBegin();private:std::set_Set;};错误:类型“std::set,std::allocator>”不是从类型“CSafeSet”派生的 最佳答案 尝试typename:templateclassCSafeSet{public:CSafeSet();~CSafeSet();typenames

c++ - 如何在STL中使用unordered_set?

我需要一个C++(STL)中的hash_map类。主要操作是将对放入集合中,然后检查它是否存在。我找不到示例代码来判断我声明的内容是否正确。#include#includeusingnamespacestd;usingnamespace__gnu_cxx;typedefpairpis;structeqpis{booloperator()(pisp1,pisp2)const{if(p1==p2)returntrue;returnfalse;}};intmain(){hash_map,eqpis>map;}这个编译。但是,如果我添加以下行:map[pis(10,"你好")]=10;然后它给

c++ - NULL 指针与 static_cast 的兼容性

Q1。为什么在static_cast中使用NULL指针会导致崩溃,而dynamic_cast和reinterpret_cast会返回NULL指针?问题发生在类似于下面给出的方法中:voidA::SetEntity(B*pEntity,intiMyEntityType){switch(iMyEntityType){caseENTITY1:{Set1(static_cast(pEntity));return;}caseENTITY2:{Set2(static_cast(pEntity));return;}caseENTITY3:{Set3(static_cast(pEntity));ret