Questions tagged «c++»

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

21
round()用于C ++中的float
我需要一个简单的浮点舍入函数,因此: double round(double); round(0.1) = 0 round(-0.1) = 0 round(-0.9) = -1 我能找到ceil()和floor()在math.h中-但不是round()。 它是否以其他名称存在于标准C ++库中,还是丢失了?

5
在G ++中,优化级别-O3危险吗?
我从各种来源(尽管大部分是我的同事发来的)都听说过,-O3用g ++ 的优化级别进行编译在某种程度上是“危险的”,除非被证明是必要的,否则通常应该避免编译。 这是真的吗?如果是这样,为什么?我应该坚持-O2吗?

30
内存泄漏可以吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 2年前关闭。 改善这个问题 在C或C ++应用程序中是否存在内存泄漏,这是否可以接受? 如果您分配一些内存并在应用程序的最后一行代码使用之前使用它,该怎么办(例如,全局对象的析构函数)?只要内存消耗不会随着时间增长,是否可以信任操作系统以在应用程序终止时(在Windows,Mac和Linux上)为您释放内存?如果内存一直被使用直到被OS释放,您甚至会认为这是真正的内存泄漏。 如果第三方图书馆将这种情况强加给您怎么办?不管它有多大,都会拒绝使用该第三方库吗? 我只看到一个实际的缺点,那就是这些良性泄漏将在内存泄漏检测工具中显示为误报。
231 c++  c  memory-leaks 

15
您如何在C ++中正确使用名称空间?
我来自Java背景,这里使用的是包,而不是名称空间。我习惯于将可以一起工作以构成一个完整对象的类放入包中,然后在该包中重新使用它们。但是现在我正在使用C ++。 您如何在C ++中使用名称空间?您是为整个应用程序创建单个名称空间,还是为主要组件创建名称空间?如果是这样,如何从其他命名空间中的类创建对象?
231 c++  namespaces 

4
为什么我会使用push_back而不是emplace_back?
C ++ 11向量具有新功能emplace_back。与push_back依赖于编译器优化来避免复制的,它不同,它emplace_back使用完美的转发将参数直接发送到构造函数以就地创建对象。在我看来,emplace_back一切push_back都能做,但是有时候它会做得更好(但永远不会更糟)。 我必须使用什么原因push_back?
231 c++  c++11  std 



10
如何将QString转换为std :: string?
我正在尝试做这样的事情: QString string; // do things... std::cout << string << std::endl; 但是代码无法编译。如何将qstring的内容输出到控制台(例如出于调试目的或其他原因)?怎么转换QString成std::string?

30
11000行C ++源文件怎么办?
所以我们的项目中有mainfile.cpp这个巨大的文件(是11000行吗?),每当我不得不触摸它时,我都会畏缩。 由于该文件是如此之大且庞大,因此它会不断积累越来越多的代码,我想不出一种使它真正开始缩小的好方法。 该文件已在我们产品的多个(> 10)维护版本中使用并进行了有效更改,因此实际上很难对其进行重构。如果要“简单地”将其拆分为3个文件(例如,一开始),那么将维护版本中的更改合并回来将成为一场噩梦。而且,如果您拆分了具有如此长而丰富的历史记录的文件,则跟踪和检查SCC历史记录中的旧更改会突然变得困难得多。 该文件基本上包含我们程序的“主类”(主要内部工作的调度和协调),因此,每次添加功能时,它也会影响此文件及其每次扩展。:-( 在这个情况下,你会怎么做?关于如何将新功能移动到单独的源文件而不弄乱SCC工作流程的任何想法? (有关工具的注意事项:我们将C ++与一起使用Visual Studio;我们使用AccuRev,SCC但我认为这里的类型SCC并不重要;我们用于Araxis Merge进行文件的实际比较和合并)


4
错误:跳转到案例标签
我编写了一个涉及使用switch语句的程序。但是在编译时它显示: 错误:跳转到案例标签。 为什么这样做呢? #include <iostream> #include <cstdlib> #include <fstream> #include <string> using namespace std; class contact { public: string name; int phonenumber; string address; contact() { name= "Noname"; phonenumber= 0; address= "Noaddress"; } }; int main() { contact *d; d = new contact[200]; string name,add; int choice,modchoice,t;//Variable for switch statement …
229 c++ 


4
何时使用哪种指针?
好的,所以我上一次写C ++为生时,std::auto_ptr所有的std lib都可用,而且boost::shared_ptr风靡一时。我从来没有真正研究过提供的其他智能指针类型。我知道C ++ 11现在提供了某些类型的boost,但不是全部。 那么,有人可以通过简单的算法来确定何时使用哪个智能指针吗?最好包括有关哑指针(原始指针,如T*)和其他Boost智能指针的建议。(喜欢的东西这将是巨大的)。



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.