Questions tagged «c++»

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


26
轻松测量经过时间
我正在尝试使用time()来测量程序的各个点。 我不明白的是为什么之前和之后的值相同?我了解这不是剖析我的程序的最佳方法,我只想了解花费多长时间。 printf("**MyProgram::before time= %ld\n", time(NULL)); doSomthing(); doSomthingLong(); printf("**MyProgram::after time= %ld\n", time(NULL)); 我努力了: struct timeval diff, startTV, endTV; gettimeofday(&startTV, NULL); doSomething(); doSomethingLong(); gettimeofday(&endTV, NULL); timersub(&endTV, &startTV, &diff); printf("**time taken = %ld %ld\n", diff.tv_sec, diff.tv_usec); 如何读取的结果**time taken = 0 26339?这是否意味着26,339纳秒= 26.3毫秒? 那大约**time taken = 4 45025是4秒25毫秒呢?
297 c++  c  linux  time  measurement 

14
从向量中提取子向量的最佳方法?
假设我有一个std::vector(myVec大小)N。构造一个由元素X到Y的副本组成的新矢量的最简单方法是什么,其中0 <= X <= Y <= N-1?例如,myVec [100000]通过myVec [100999]一个size的向量150000。 如果使用向量无法有效完成此操作,是否应该使用另一种STL数据类型呢?
295 c++  stl  vector  range 

5
用成员函数启动线程
我正在尝试std::thread使用不带参数和返回值的成员函数构造一个void。我无法找出任何有效的语法-编译器会抱怨。什么是正确的实现方式spawn(),使其返回std::thread执行结果test()? #include <thread> class blub { void test() { } public: std::thread spawn() { return { test }; } };


9
如何遍历C ++地图?
如何std::map在C ++中循环浏览?我的地图定义为: std::map< std::string, std::map<std::string, std::string> > 例如,上述容器保存如下数据: m["name1"]["value1"] = "data1"; m["name1"]["value2"] = "data2"; m["name2"]["value1"] = "data1"; m["name2"]["value2"] = "data2"; m["name3"]["value1"] = "data1"; m["name3"]["value2"] = "data2"; 如何遍历此映射并访问各种值?

15
==和!=是否相互依赖?
我正在学习C ++中的运算符重载,我看到了==,!=它们只是一些可以针对用户定义的类型进行自定义的特殊功能。但是,我担心的是,为什么需要两个单独的定义?我认为如果a == b为true,则a != b自动为false,反之亦然,并且没有其他可能性,因为根据定义,a != b为!(a == b)。而且我无法想象任何情况都不是真的。但是也许我的想象力有限,或者我什么都不知道? 我知道我可以用另一个来定义,但这不是我要问的。我也没有问比较按值或按身份比较对象之间的区别。或者两个对象是否可以同时相等和不相等(这绝对不是选择!这些东西是互斥的)。我要问的是: 是否有可能问到关于两个对象相等的问题是有意义的,而问他们不相等是没有意义的呢?(从用户角度或从实施者角度) 如果没有这种可能性,那么为什么在地球上C ++会将这两个运算符定义为两个不同的函数?

11
C ++中的逻辑XOR运算符?
有这样的事吗?这是我第一次遇到实际需求,但我看不到Stroustrup中列出的需求。我打算写: // Detect when exactly one of A,B is equal to five. return (A==5) ^^ (B==5); 但是没有^^运算符。我可以在^这里使用按位运算,并得到正确的答案吗(不管机器是对还是错)。我从不混合&和&&,或|和||,所以我犹豫着用^和^^。 我会更愿意编写自己的bool XOR(bool,bool)函数。

24
Singleton:应如何使用
编辑:从另一个问题中,我提供了一个答案,该答案具有许多有关单身人士的问题/答案的链接:有关单身人士的更多信息,请参见: 因此,我读了Singletons主题:好的设计还是拐杖? 而且争论仍然很激烈。 我认为单例是一种设计模式(好的和坏的)。 Singleton的问题不是模式,而是用户(对不起每个人)。每个人和他们的父亲都认为他们可以正确实施一个方案(从我进行的许多访谈中,大多数人都做不到)。同样因为每个人都认为他们可以实现正确的Singleton,所以他们滥用Pattern并在不合适的情况下使用它(用Singletons代替全局变量!)。 因此,需要回答的主要问题是: 什么时候应该使用Singleton 您如何正确实现Singleton 我对本文的希望是,我们可以在一个地方(而不是谷歌和搜索多个站点)一起收集何时(然后如何)正确使用Singleton的权威来源。同样合适的是反使用和常见的不良实现的列表,这些列表解释了为什么它们无法正常工作以及对于好的实现而言它们的弱点。 所以滚了一下球: 我会举起我的手,说这是我用的,但可能有问题。 我喜欢他的“有效C ++”一书中对“斯科特·迈尔斯”的处理 使用单例的好情况(不多): 记录框架 线程回收池 /* * C++ Singleton * Limitation: Single Threaded Design * See: http://www.aristeia.com/Papers/DDJ_Jul_Aug_2004_revised.pdf * For problems associated with locking in multi threaded applications * * Limitation: * If you use this Singleton (A) within a …

7
命名空间+函数与类上的静态方法
假设我有或将要编写一组相关函数。假设它们与数学有关。在组织上,我应该: 编写这些函数并将它们放在我的MyMath名称空间中,并通过引用它们MyMath::XYZ() 创建一个名为的类MyMath,并使这些方法静态化,并类似地进行引用MyMath::XYZ() 为什么我会选择一个作为组织软件的方式?

19
在C / C ++中检测多余的#include?
我经常发现文件的标头部分一直都在变大,但从未变小。在源文件的整个生命周期中,类可能已经移动并被重构,并且很可能有很多#includes不需要再存在了。将它们保留在那里只会延长编译时间,并增加不必要的编译依赖项。试图弄清仍然需要哪些可能会很乏味。 是否有某种工具可以检测到多余的#include指令并建议可以安全删除的指令? 皮棉可以这样做吗?



10
C / C ++包含头文件的顺序
应该指定包含文件的顺序,即,为什么在一个头之前包含一个头的原因是什么? 例如,系统文件,STL和Boost是否在本地包含文件之前或之后?
287 c++  c 

20
用C或C ++编写Android应用程序?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我正在尝试将游戏开发/移植到Android,但是它是用C语言编写的,并且Android支持Java,但是我敢肯定,一定有一种方法可以在其中安装C应用程序,任何人都知道实现此目的的方法吗?
286 c++  c  android 

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.