草庐IT

char_set

全部标签

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++ - const char myVar* 与 const char myVar[]

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Differencebetweenusingcharacterpointersandcharacterarrays有什么区别:constchar*myVar="HelloWorld!";constcharmyVar[]="HelloWorld!";如果有的话?

c++ - 使用指向 char 的指针时访问冲突写入位置

我正在编写一个非常简单的程序,用于从字符串中删除重复的字符。我运行它visualstudio并得到错误:Unhandledexceptionat0x00d110d9ininteviews.exe:0xC0000005:Accessviolationwritinglocation0x00d27830.我真的不明白问题是什么。当前单元格获取下一个单元格的值。voidremove(char*str,chara){while(*str!='\0'){if(*(str+1)==a){remove(str+1,a);}*str=*(str+1);//HEREIGETTHEERROR++str;}}

c++ - 将 System::String 转换为 Const Char *

这个问题在这里已经有了答案:howtoconvertSystem::Stringtoconstchar*?(2个答案)关闭7年前。我正在使用VisualC++2008的GUI创建器制作用户界面。单击按钮时,将调用以下函数。内容应该创建一个文件,并以文本框“文本框”的内容命名该文件,末尾带有“.txt”。但是,这导致我出现转换错误。这是代码:私有(private):System::VoidButton_Click(System::Object^sender,System::EventArgs^e){ofstreammyfile(Textbox->Text+".txt");我的文件.clo

c++使用int和char *重载构造函数

我尝试使用int和char*重载构造函数。然后在调用0时有歧义。是否有任何解决方法/解决方案?CBigInt(unsignedint);CBigInt(constchar*);问题出在0线上:CBigInta;//somemorecodea*=0;感谢您的回答。 最佳答案 使构造函数之一显式。只有在传递的类型完全匹配时才会使用它。CBigInt(unsignedint);explicitCBigInt(constchar*); 关于c++使用int和char*重载构造函数,我们在Stac

c++ - 为什么 unsigned char 用于 RGB 像素数据?

我正在使用一些基本的计算机图形学来学习C++。像素数据通常表示为:unsignedchar*pixelsunsignedchar很好,因为它是0到255之间的值(256=2^8因为char是2个字节,1个字节是8位?)。这很好,因为在RGB中,颜色用0到255之间的数字表示。但是..我将其理解为单色图像,在正常图像中我有RGB,我会有3个未签名字符数组,一个用于红色,一个用于绿色,一个用于蓝色。像这样的东西:unsignedchar*pixels[3]但我从来没有发现类似的RGB像素数据 最佳答案 RGB图像通常以交错顺序存储(R1

c++ - char *foo 与 char* foo

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。简单的问题是:你为什么要写char*foo;不是char*foo;让我解释一下:对我(来自Java)来说,声明类似于;在上面的例子中,我声明了一个名为foo的变量,类型为char*(因为它是一个指向char的指针)。但无论我在哪里阅读c/c++/c#-Code,它看起来都像是一个名为*foo的char类型的变量。编译器不关心空格,但我作为开发人员关心。t

c++ - 引用 set for c++ 中的最大/最小 int

假设我有以下使用C++中的集合的示例:seta;for(inti=0;i如何找到上面显示的集合示例的最大值和最小值?理想情况下,我认为以下内容会起作用,但会出现以下错误:error:cannotconvert'std::_Rb_tree_const_iterator'to'int'inassignment我正在使用以下函数来尝试获取最大值/最小值:min=a.begin();max=a.end(); 最佳答案 首先,begin和end返回迭代器,需要对(*)进行间接寻址,得到它们指向的元素在.其次,end返回尾后迭代器,因此实际上并

C++ 是否在恒定时间内执行 std::set、std::map 等的 begin/end/rbegin/rend?

对于std::set和std::map等以对数时间查找的数据类型,实现是否需要维护开始和结束迭代器?访问begin和end是否意味着查找可能以对数时间发生?我一直假设开始和结束总是在常数时间内发生,但是我在Josuttis中找不到任何对此的证实。既然我正在做一些我需要对性能有所了解的事情,我想确保涵盖我的基础。谢谢 最佳答案 它们发生在常数时间内。我正在查看ISO/IEC14882:2003标准的第466页:表65-容器要求a.开始();(恒定的复杂性)a.end();(恒定的复杂性)表66-可逆容器要求a.rbegin();(恒定

c++ - STL map<char*,char*> 析构函数

我知道映射析构函数调用每个包含元素的析构函数。会发生什么map?我看不到这段代码在/usr/include/c++/4.4中的什么地方编辑:我应该说map喜欢http://www.sgi.com/tech/stl/Map.html 最佳答案 当map被摧毁,它包含的所有元素也被摧毁。如果元素是类类型,则调用每个元素的析构函数。但是,请牢记上面map中包含的内容。正如您所料,它不是字符串——它只是指向字符串的指针。琴弦本身并没有被破坏。只有指针是。delete永远不会在指针上调用。恰当的例子:mapstrings;char*key=n