草庐IT

new_string

全部标签

C++ 相当于 Python 的 "if x in [string1, string2, …]"

我的小项目是制作一个聊天机器人;我没有谷歌开源,也没有研究如何构建。我正在尝试这样做以了解我对C++的理解程度:说的是;我正在尝试制作一个“盒子”,其中包含所有可以给出的“问题”,并查看“如果”“问题”“在”“盒子”中,它将执行所述代码。在Python中,它或多或少是:Box=["Yes","YES","yes","yEs","YeS","yES"]print"Willyoubeworkingtoday?"response=raw_input(">")ifresponseinBox:print"Verywell,thenhowcanIassistyou?"那么我将如何在C++中这样做。

c++ - 字符串和 vector 元素<string>的区别

这个问题在这里已经有了答案:WhydoesC++allowanintegertobeassignedtoastring?(4个答案)关闭5年前。我是编程新手。我正在学习C++中的vector。我很好奇为什么strings=42;会导致错误但是vectorvec(3);vec[0]=42;没有。谢谢!

c++ - 为什么 const char* 强制转换为 std::string 有效?

这个Actor令我困惑:#include#include#includeusingnamespacestd;intmain(){stringstr1=(string)"Icastthisthing"+"--thenaddthis";cout有人可以解释为什么这种c风格的字符串转换有效(或被允许)吗?我将生成的优化程序集与来自:stringstr1=string("Iconstructthisthing")+"--thenaddthis";而且它们看起来是相同的,所以我觉得我忘记了一些实际上允许互换这种转换/构造的C++语义。std::stringstr2=std::string("Ic

c++ - C/C++ : how to get integer unix timestamp of build time (not string)

我正在尝试实现非常微不足道的事情:我需要存储构建时间的整数32位unix时间戳,但是我找到的所有宏(__DATE__,__TIME__,__TIMESTAMP__)扩展为字符串,而不是整数。看来,我们只是没有它(这对我来说很奇怪)。我真的想要整数,而不是字符串。获得它的最佳做法是什么?更新:附带说明:我做嵌入式的东西,所以我没有足够的资源(比如128KB的闪存),因此解析字符串真的是个坏主意。我为什么需要它:我只需要每个Beta版本都有唯一的版本号。首先,hex文件将被命名为my-firmware-v2-33-BETA-1397315745.hex,其次,当我需要在设备屏幕上显示当前版

没有 <string> 和 STL 的 C++ 字符串

我过去用C++的次数不多,最近一直在用C#,我真的很难再次回到C++的基础知识中。这是特别棘手的,因为工作要求不能使用最方便的C++结构,因此所有字符串都必须是char*,并且没有提供STL列表。我目前正在尝试做的是创建一个字符串列表,使用STL或在C#中我根本不会花时间。基本上我想要一个功能,例如:char**registeredNames=newchar*[numberOfNames];然后,RegisterName(const*charconstname,constintlength){//looptoseeifnamealreadyregisteredsnippedif(not

c++ - std::string 等效于具有空字符的数据?

我想读取二进制文件并使用类似std::string的东西来自动调整缓冲区大小等。我正在使用VisualC++。我有哪些选择? 最佳答案 std::string类已经可以处理嵌入了NUL字符的数据。你遇到了什么问题?请注意,在使用.c_str()方法时,任何嵌入的NUL字符都将终止返回的C风格字符串。 关于c++-std::string等效于具有空字符的数据?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c

c++ - Object var 和 Object* var = new Object() 的区别

如果我有一个名为Object的类,那么创建一个这样的实例有什么区别:Objectvar;和:Object*var=newObject();? 最佳答案 此处您在堆栈上创建了var:Objectvar;所以在上面,var是实际的对象。此处您在堆上创建var(也称为动态分配):Object*var=newObject()在堆上创建对象时,必须在使用完后对其调用delete。此外,var实际上是一个指针,它保存着类型为Object的对象的内存地址。在内存地址存在实际对象。更多信息:Seemyanswerhereonwhatandwhere

c++ - 为什么我们不能在没有 new 关键字的情况下在 Qt 中创建对象(即在堆栈上)?

为什么我们不能在没有new关键字的情况下在QT中创建对象?通常我们创建指向对象的指针,如下所示:QLabel*ql=newQLabel();ql->show()但我想创建一个这样的对象:QLabelql=QLabel();ql.show()这可能吗? 最佳答案 问题在于Qt控件(标签、按钮)处于层次结构中(例如,按钮属于窗体)。而Qt的实现方式要求当一个对象被销毁时,属于它的所有对象也会被销毁。如果您将对象放在堆栈上(这就是“不使用new关键字创建”的真正调用方式),它们将自动销毁。这是C++的特性,它适用于所有程序。如果您在堆栈上

C++,删除类头中的#include<vector> 或#include<string>

如果可能的话,我想从我的类头文件中删除和的包含。string和vector都是在头文件中声明的函数的返回类型。我希望我能做这样的事情:namespacestd{templateclassvector;}然后,在header中声明vector并将其包含在源文件中。是否有涵盖必须包含在header中的情况以及可以将包含内容拉入源文件的情况的引用? 最佳答案 你不能安全地转发声明STL模板,至少如果你想以可移植和安全的方式进行。该标准清楚地说明了每个STL元素的最低要求,但为可能添加额外模板参数的实现扩展留出了空间,只要它们具有默认值。也

c++ - Cygwin: g++ 5.2: ‘to_string’ 不是 ‘std’ 的成员

这个问题在这里已经有了答案:to_stringisnotamemberofstd,saysg++(mingw)(13个答案)关闭7年前。下面这个简单的程序不能用gcc在cygwin中编译#include#includeintmain(){std::cout命令行:$g++-std=c++0xto_string.cc错误:to_string.cc:Infunction‘intmain()’:to_string.cc:6:16:error:‘to_string’isnotamemberof‘std’std::coutG++版本:$g++--versiong++(GCC)5.2.0Copyr