草庐IT

the-button-element

全部标签

c++ - C 到 C++ : Transitioning from one language to the other

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:C++tutorialforexperiencedCprogrammer.我经常使用多种语言进行编程,最近一直在使用C++。基本上我的类只是对纯C代码的包装。几乎就像一个带有关联方法的结构。这为我的数据提供了我想要的封装和隐私。我有一个小的类层次结构,几乎没有使用继承。我熟悉面向对象的概念,并且知道当我需要了解这方面的特定概念时可以使用哪些搜索词。然而,正如我在编程世界中的尝试所发现的那样,通常真正有用的语言特性对新手或新手来说是隐藏的,而我需要的有用的部分已经写好了并且在某个地方的库中可以免费使用可用(大多

XCode : Where is the default directory? 上的 C++ ifstream

好的,这是我第一次在Xcode中编写C++代码(我已经习惯了ObjC),现在我已经开始在我的大学学习编程类(class)。我正在尝试打开一个文件(硬编码或来自控制台中的用户输入),但无论我尝试什么,它都说文件无法打开(通过错误检查)我假设这是因为我拥有的test.txt文件不在假定的根目录中,所以如果是这样,那么根目录是什么?到目前为止,这是我的代码://includefiles#include#include#includeusingnamespacestd;//GlobalVariablesshortinputPicture[512][512];shortoutputPicture

c++ - 错误 : Variable length array of Non-POD element type 'string'

在开始之前,我必须首先声明,我已经研究过针对此错误的可能解决方案。不幸的是,它们都与不使用数组有关,这是我项目的要求。另外,我目前正在学习CS入门类(class),所以我的经验几乎没有。数组的用途是从文件中收集名称。因此,为了初始化数组,我计算了名称的数量并将其用作大小。问题是标题中所述的错误,但我仍然使用一维数组时看不到解决方法。主要.cpp#include#include#include#include#include#include"HomeworkGradeAnalysis.h"usingnamespacestd;intmain(){ifstreaminfile;ofstrea

c++ - 与 min_element 和 max_element 一起使用 minmax_element 是否有任何效率优势?

std::minmax_element:返回一个对,该对由指向最小元素的迭代器作为第一个元素和指向最大元素的迭代器作为第二个元素组成。std::min_element:返回指向[first,last)范围内最小元素的迭代器。std::max_element:返回指向[first,last)范围内最大元素的迭代器。std::minmax_element是否使用完整列表的排序来实现此目的?从std::minmax_element处理返回对的开销是否足够? 最佳答案 您不必担心std::minmax_element进行任何排序。它以遍历的

c++ - 减少冗长 : inserting elements into map

我最近在熟悉C++11,auto关键字很棒!打字:for(autobar:bars){太令人满意了。保持代码的可读性和美观。仍然感觉它停止了你所有的动力如下:foo.insert(std::pair("soVerbose",baz));//Asopposedtosimply:foo.insert("soVerbose",baz);它是这样的有充分的理由吗?有什么巧妙的方法可以让它不那么冗长吗?我知道[]运算符可用于将元素插入map,但功能略有不同。 最佳答案 使用emplace功能:#include#include#includei

c++ - g++ : Is there a way to access compile flags inside the code that is being compiled?

有没有一种方法(例如,定义的常量)来访问正在编译的代码中运行编译器的编译标志。例如,我想要一个程序来写入编译时使用的标志。intmain(){std::coutgcc/g++是否存在这样的常量?或者更好:是否有在gcc和clang中都定义的常量?我对检查优化级别和-march标志的值特别感兴趣。那么,如果没有显示所有标志的常量,是否至少有显示这些值的常量? 最佳答案 以下命令打印出所有预定义的宏:g++-dM-E-这适用于gcc和g++。您可以自行检查-不幸的是,没有宏可让您轻松访问完整的gcc/g++命令行。幸运的是,大多数-m.

c++ - 虚继承与多态 : Is the cereal library messing with object layout?

我有四个类(A、B、C和D)遵循经典菱形图案和Container包含unique_ptr的类.我想使用cereal序列化这些类序列化库。structA{intf1;intf2;intf3}structB:publicvirtualA{templateinlinevoidsave(Archive&ar)const{std::cerrf1)f2)f3)f1f2f3CEREAL_REGISTER_TYPE(B);CEREAL_REGISTER_TYPE(C);CEREAL_REGISTER_TYPE(D);structContainer{std::unique_ptrobj;template

C++ fatal error C1001 : An internal error has occurred in the compiler

在Release模式下编译时出现以下错误。1>d:\users\eyal\projects\code\yalla\core\src\runbox\win32\window.cpp:fatalerrorC1001:Aninternalerrorhasoccurredinthecompiler.1>(compilerfile'f:\dd\vctools\compiler\utc\src\p2\main.c',line249)1>Toworkaroundthisproblem,trysimplifyingorchangingtheprogramnearthelocationslistedab

c++ - Clangs C++ 模块 TS 支持 : How to tell clang++ where to find the module file?

在他的talk在CppCon上,RichardSmith提到尽管ModuleTS支持目前正在进行中,但它已经可以使用了。所以我从svn构建了clang4.0,并在一个非常简单的示例上进行了尝试。在我的myclass.cppm文件中,我为int定义了一个简单的包装器modulemyclass;exportclassMyClass{public:MyClass(inti):_i{i}{}intget(){return_i;}private:int_i;};和我的main.cpp只是创建该类的一个实例,并将其保存的int输出到std::cout。#include#includeimportm

c++ - GCC 内联汇编错误 : Cannot take the address of 'this' , 这是一个右值表达式

我仍在与GCC作斗争-编译以下内联汇编代码(使用-fasm-blocks,启用Intel风格汇编syntax)给我一个奇怪的错误Cannottaketheaddressof'this',whichisanrvalueexpression...MyClass::MyFunction(){_asm{//...movebx,this//error:Cannottaketheaddressof'this',whichisanrvalueexpression//...moveax,this//error:Cannottaketheaddressof'this',whichisanrvalueex