草庐IT

rdbg_std_amd

全部标签

c++ - 如何将 unsigned char[] 转换为 std::vector<unsigned char>

我正在尝试将其传递给我的项目的另一部分,该部分要求它是一个vectorunsignedcharvch[65];unsignedintsize()const{returnGetLen(vch[0]);}constunsignedchar*begin()const{returnvch;}constunsignedchar*end()const{returnvch+size();std::vectorRaw()const{return(vch,vch+size());}我得到了错误couldnotconvert'(constunsignedchar*)(&((constCPubKey*)th

c++ - 在 std::cout 之后使用 std::cin 时换行符来自哪里?

考虑下面的简单例子#includeintmain(){usingnamespacestd;charname[30];cout>name;cout该程序的示例输出如下:Whatisyourfirstname:BobHelloBob该程序按预期工作,但我不明白输出流如何知道转到下一行。我基本上是在考虑两个独立的信息流,并且对输出流如何知道进入下一个只是因为它后面跟着输入感到困惑。换行符从哪里来?? 最佳答案 输出流不会转到下一行。您在键入名称后按了Enter。终端有本地回显,这意味着您在键盘上输入的字符会回显到终端。您在屏幕上看到的“B

c++ - 为什么这个编译器错误? - 没有匹配函数调用 'std::basic_ofstream<char>::open(std::string&)'

这适用于VisualStudio,并且适用于一台计算机上的GCC4.9.2。但在不同的计算机上,我认为它是相同的GCC4.9.2编译器,但它给了我这个错误。我错过了什么吗?怎么回事?#include#include#includeusingnamespacestd;intmain(){stringfilename;filename="teststring";ofstreamfout;fout.open(filename);fout.||===Build:Debuginfileiotest(compiler:TDM32GNUGCCCompiler4.9.2dw2)===|F:\Users

c++ - std::string 的 strlen(str.c_str()) 和 str.length() 之间的区别

作为一种隐含的理解,我一直认为std::string的每一个实现必然必须满足strlen(str.c_str())==str.length()对于每个字符串str。C++标准对此有何规定?(是吗?)背景:至少VisualC++和gcc附带的实现没有这个属性。考虑这个例子(参见hereforaliveexample)://Output://stringsaysitslengthis:13//strlensays:5#include#include#includeintmain(){std::stringstr="Hello,world!";str[5]=0;std::cout当然,没有注

c++ - std::make_pair、c++11 和显式模板参数

这个问题在这里已经有了答案:C++11make_pairwithspecifiedtemplateparametersdoesn'tcompile(1个回答)关闭7年前。重新编辑:首先,这只是一个好奇的问题,我知道,std::pair或许多其他解决方案可以根除这个问题。你能告诉我,下面这个问题的背后究竟是什么吗?此代码是一个在c++03上运行但在c++11上失败的简单示例。std::pairgetsth(int*param){returnstd::make_pair(param,0);}intmain(intargc,char*argv[]){int*a=newint(1);std::

c++ - 对 std::atomic::load 的结果使用 Structure dereference(->) 运算符是否安全

在尝试使用std原子指针时,我遇到了以下问题。假设我这样做:std::atomicmyString;////AcanIdothis?myString.load()->size()//BcanIdothis?charmyFifthChar=*(myString.load()->c_str()+5);//CcanIdothis?charmyCharArray[255];strcpy(myCharArray,myString.load()->c_str());我很确定C是非法的,因为myString可能同时被删除。但是我不确定A和B。我认为它们是非法的,因为在执行读取操作时指针可能会被引用。

c++ - std::string 与静态常量的 char 数组

我想在我的cpp文件中的多个位置使用字符串常量。我应该使用std::string还是char[]?staticconststd::stringkConstantString="ConstantStringValue";staticconstcharkConstantString[]="ConstantStringValue";有人告诉我更喜欢后者,因为它“避免了静态分配”。char数组不是也必须静态分配吗? 最佳答案 是的,是的,它也必须静态分配。总是使用std::string除非你的探查器告诉你它值得惹恼像constchar[]这

hdc_std

hdc_std简介HDC(OpenHarmonyDeviceConnector)是为开发人员提供的用于设备连接调试的命令行工具,pc端开发机使用命令行工具hdc_std(为方便起见,下文统称hdc),该工具需支持部署在Windows/Linux/Mac等系统上与OpenHarmony设备(或模拟器)进行连接调试通信。PC端hdc工具需要针对以上开发机操作系统平台分别发布相应的版本,设备端hdcdaemon需跟随设备镜像发布包括对模拟器进行支持。下文将介绍hdc的常用命令及使用举例。架构hdc主要有三部分组成:hdcclient部分:运行于开发机上的客户端,用户可以在开发机命令终端(window

c++ - 'clear'可以赋值给std::string,为什么会有 ""方法?

可以使用string::clear函数来清空字符串,也可以使用空双引号""来做到这一点。有什么区别? 最佳答案 当您分配一个空字符串时,编译器必须在数据部分存储一个空的C字符串,并创建代码以将指向它的指针传递给赋值运算符。然后赋值运算符必须从数据部分读取,只是为了找出您传递了一个空字符串。使用clear(),编译器只生成一个不带任何参数的函数调用。数据部分没有空字符串,没有传递指针,没有读取等。你甚至可能有一个编译器,可以优化它。我不知道是否有,但标准库不能依赖特定的编译器功能,这不是必需的。一个更重要的区别是表达意图。如果您希望代

c++ - std::cout<< x 之间的区别是什么?和 std::cout<<x<<std::endl;?

我是编程的新手,我昨天开始自学,我得到了一切,但老实说,我不明白两者之间的区别std::cout和std::cout没有人向我解释过这个,我要求保持安全。 最佳答案 endl向流中写入一个换行符,因此后续输出将出现在下一行。它还会刷新流的缓冲区,通常是causingaslow-down.这种刷新意味着99%的时间,endl是一个错误,你应该只写"\n"(或'\n')代替。当您确实想要刷新流时,我认为最好通过调用std::flush来明确说明:std::cout就运行时操作而言,这等同于使用std::endl,但就明确您的意图而言,它