Questions tagged «c++»

C ++是一种通用编程语言。它最初被设计为C的扩展,并且具有类似的语法,但是现在它是一种完全不同的语言。使用此标记可解决有关将要使用C ++编译器编译的代码的问题。对于与特定标准修订版[C ++ 11],[C ++ 14],[C ++ 17]或[C ++ 20]等相关的问题,请使用特定于版本的标记。

9
在Visual Studio中显示C ++文件的#include层次结构
问题:我有一个大型的Visual C ++项目,我正尝试将其迁移到Visual Studio2010。它是来自各种来源和各个年龄段的大量内容的组合。我遇到了问题,因为同时包含winsock.h和winsock2.h。 问题:有哪些工具和技术可以显示#includeVisual Studio C ++源文件的层次结构? 我知道如何cl /P获取预处理器输出,但是并不能清楚地显示出哪个文件包括哪些其他文件(在这种情况下,/P输出为376,932行长8)。 在理想的情况下,我想要分层显示哪些文件包括哪些其他文件以及行号,这样我就可以跳到源代码中: source.cpp(1) windows.h(100) winsock.h some_other_thing.h(1234) winsock2.h


4
auto &&告诉我们什么?
如果您阅读类似的代码 auto&& var = foo(); foo根据type的值返回的任何函数在哪里T?然后var是rvalue类型的左值引用T。但是,这意味着var什么呢?这是否意味着我们被允许窃取的资源var?是否有任何合理的情况下,您应该auto&&像unique_ptr<>告诉您拥有独占所有权时一样,告诉读者您的代码?那例如什么T&&时候T是类类型呢? 我只是想了解一下,是否还有auto&&模板编程之外的其他用例?就像Scott Meyers 在本文“ 通用参考”中的示例中所讨论的一样。

30
C ++:四舍五入到数字的最接近倍数
好的-我几乎不好意思在这里发布此内容(如果有人投票关闭,我会删除),因为这似乎是一个基本问题。 这是在C ++中舍入到整数倍的正确方法吗? 我知道还有与此相关的其他问题,但是我特别想知道在C ++中执行此操作的最佳方法是什么: int roundUp(int numToRound, int multiple) { if(multiple == 0) { return numToRound; } int roundDown = ( (int) (numToRound) / multiple) * multiple; int roundUp = roundDown + multiple; int roundCalc = roundUp; return (roundCalc); } 更新:抱歉,我可能没有明确意图。这里有些例子: roundUp(7, 100) //return 100 roundUp(117, 100) //return 200 …
168 c++  algorithm  rounding 

23
切换if-else语句的优势
switch与使用if语句进行30个unsigned枚举(其中约10个具有预期动作(当前是相同动作))相比,使用语句的最佳实践是什么?性能和空间需要考虑,但不是关键。我已经摘录了摘要,所以不要因为命名约定而讨厌我。 switch 声明: // numError is an error enumeration type, with 0 being the non-error case // fire_special_event() is a stub method for the shared processing switch (numError) { case ERROR_01 : // intentional fall-through case ERROR_07 : // intentional fall-through case ERROR_0A : // intentional fall-through case ERROR_10 : …

12
如何构建和使用Google TensorFlow C ++ API
我真的很想开始在C ++中使用Google的新Tensorflow库。网站和文档在如何构建项目的C ++ API方面还不清楚,我不知道从哪里开始。 有更多经验的人可以通过发现和共享使用tensorflow的C ++ API的指南来提供帮助吗?
168 c++  tensorflow 




6
如何在Qt Creator中启用C ++ 11?
标题很容易描述。我已经下载了Qt Creator 2.7.0,并且正在尝试编译一些基本的C ++ 11代码: int my_array[5] = {1, 2, 3, 4, 5}; for(int &x : my_array) { x *= 2; } 我收到以下错误: range based for loops are not allowed in c++ 98 mode 但是,根据本文,此版本的Qt Creator支持C ++ 11。那么如何启用它呢?
167 c++  qt  c++11 

4
Linux上的C ++动态共享库
这是使用g ++进行动态共享库编译的后续版本。 我正在尝试在Linux上的C ++中创建一个共享的类库。我可以编译该库,并且可以使用在此和此处找到的教程来调用某些(非类)函数。当我尝试使用库中定义的类时,我的问题开始了。我链接到的第二篇教程展示了如何加载用于创建库中定义的类的对象的符号,但是没有使用这些对象来完成任何工作。 有谁知道用于创建共享C ++类库的更完整的教程,该教程还显示了如何在单独的可执行文件中使用这些类?一个非常简单的教程,介绍了对象的创建,使用(简单的getter和setter方法就可以了)和删除操作是非常棒的。链接或引用某些开源代码来说明共享类库的使用也同样不错。 尽管来自codelogic和nimrodm的答案确实有用,但我只是想补充一点,因为提出了这个问题,所以我选择了《Beginning Linux Programming》的副本,并且其第一章包含示例C代码以及有关创建和使用静态库和共享库的良好解释。 。这些示例可通过该书的旧版中的 Google图书搜索获得。

7
如何在C ++中“返回对象”?
我知道标题听起来很耳熟,因为有许多类似的问题,但是我要问的是问题的另一个方面(我知道将事物放在堆栈上并将它们放在堆上的区别)。 在Java中,我总是可以返回对“本地”对象的引用 public Thing calculateThing() { Thing thing = new Thing(); // do calculations and modify thing return thing; } 在C ++中,要做类似的事情,我有2个选择 (1)每当需要“返回”对象时,我都可以使用引用 void calculateThing(Thing& thing) { // do calculations and modify thing } 然后像这样使用它 Thing thing; calculateThing(thing); (2)或者我可以返回指向动态分配对象的指针 Thing* calculateThing() { Thing* thing(new Thing()); // do calculations and modify …

9
C ++运算符中的隐式类型转换规则
我想更好地知道应该何时施展。加,乘等时,C ++中的隐式类型转换规则是什么。例如, int + float = ? int * float = ? float * int = ? int / float = ? float / int = ? int / int = ? int ^ float = ? 等等... 表达式始终会被评估为更精确的类型吗?Java的规则是否有所不同?如果我对这个问题的措词不正确,请纠正我。
167 c++  casting  implicit 

11
如何有效清除std :: queue?
我正在使用std :: queue来实现JobQueue类。(基本上,此类以FIFO方式处理每个作业)。在一种情况下,我想一次清除队列(从队列中删除所有作业)。我在std :: queue类中看不到任何清晰的方法。 如何有效实现JobQueue类的clear方法? 我有一个循环弹出的简单解决方案,但我正在寻找更好的方法。 //Clears the job queue void JobQueue ::clearJobs() { // I want to avoid pop in a loop while (!m_Queue.empty()) { m_Queue.pop(); } }
166 c++  stl  queue 

16
该程序无法启动,因为缺少libgcc_s_dw2-1.dll
我已经用Code :: Blocks在C ++中创建了一个简单的程序。 如果我从Code :: Blocks运行它,它将正常工作;但是如果我通过双击可执行文件来运行它,则会弹出一个窗口,显示以下消息: 该程序无法启动,因为您的计算机缺少libgcc_s_dw2-1.dll。 尝试重新安装该程序以解决此问题。 那么,有什么问题呢?我该怎么做才能解决?
166 c++  windows  mingw 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.