Questions tagged «c++»

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

20
C ++ Singleton设计模式
最近,我碰到了C ++的Singleton设计模式的实现/实现。它看起来像这样(我从现实生活的示例中采用了它): // a lot of methods are omitted here class Singleton { public: static Singleton* getInstance( ); ~Singleton( ); private: Singleton( ); static Singleton* instance; }; 从该声明中,我可以推断出实例字段是在堆上初始化的。这意味着存在内存分配。对我来说,完全不清楚的是何时确切地将要释放内存?还是有错误和内存泄漏?似乎实现中存在问题。 我的主要问题是,如何以正确的方式实施它?



24
C ++标准说明int,long类型的大小是什么?
我正在寻找有关基本C ++类型大小的详细信息。我知道这取决于体系结构(16位,32位,64位)和编译器。 但是C ++有什么标准吗? 我在32位体系结构上使用Visual Studio 2008。这是我得到的: char : 1 byte short : 2 bytes int : 4 bytes long : 4 bytes float : 4 bytes double: 8 bytes 我试图找到,但没有成功,可靠的信息,表述的大小char,short,int,long,double,float(和其他类型的我没想到的),在不同的体系结构和编译器。
696 c++  c++-faq 

17
main()在C和C ++中应该返回什么?
main()用C和C ++ 定义函数的正确(最有效的)方法是什么?int main()或者void main()为什么?为什么?如果int main()那么return 1还是return 0? 此问题有很多重复项,包括: C main()函数的有效签名是什么? main()函数的返回类型 void main()和之间的区别int main()? main()C ++中的签名 正确的声明是main()什么?—对于C ++,确实有很好的答案。 main()C函数的样式 main()C语言中方法的返回类型 int main()与void main()C 有关: C ++- int main(int argc, char **argv) C ++- int main(int argc, char *argv[]) 是char *envp[]为第三个参数main()便携式? int main()函数必须在所有编译器中返回值吗? 为什么main()C和C ++ 中的函数类型留给用户定义? 为什么要int main(){}编译? main()C ++ …



19
以每种语言编译时,在C和C ++中都有效的代码能否产生不同的行为?
C和C ++有很多区别,并非所有有效的C代码都是有效的C ++代码。 (“有效”是指具有定义行为的标准代码,即不是特定于实现的/未定义的等。) 在任何情况下,使用每种语言的标准编译器进行编译时,在C和C ++中都有效的一段代码会产生不同的行为吗? 为了使之合理/有用(我试图学习一些实用的东西,而不是试图在问题中发现明显的漏洞),让我们假设: 与预处理器无关(这意味着不会与#ifdef __cplusplus,编译指示等发生冲突) 实现定义的任何内容在两种语言中都是相同的(例如,数值限制等) 我们正在比较每个标准的合理最新版本(例如C ++ 98和C90或更高版本)。 如果版本很重要,请说明每个标准的哪个版本会产生不同的行为。
664 c++  c 



4
如何达到每个周期4个FLOP的理论最大值?
在现代的x86-64 Intel CPU上,如何实现每个周期4个浮点运算(双精度)的理论峰值性能? 据我了解,在大多数现代英特尔CPU上,一个SSE 需要三个周期,一个SSE需要add五个周期mul(例如,请参见Agner Fog的“指令表”)。由于流水线,add如果算法具有至少三个独立的求和,则每个循环的吞吐量可以达到一个。由于对于打包addpd以及标量addsd版本和SSE寄存器都可以包含2 double的情况都是如此,每个周期的吞吐量可以高达2触发器。 此外,似乎(虽然我还没有看到任何这适当的文件)add的和mul的可并行给予的四个理论最大吞吐量每个周期触发器执行。 但是,我无法使用简单的C / C ++程序来复制该性能。我的最佳尝试导致每个循环约2.7翻牌。如果有人可以提供一个简单的C / C ++或汇编程序,该程序可以证明其最高性能,将不胜感激。 我的尝试: #include <stdio.h> #include <stdlib.h> #include <math.h> #include <sys/time.h> double stoptime(void) { struct timeval t; gettimeofday(&t,NULL); return (double) t.tv_sec + t.tv_usec/1000000.0; } double addmul(double add, double mul, int ops){ // Need to initialise differently otherwise …

16
睡眠数毫秒
我知道POSIX sleep(x)函数会使程序休眠x秒。在C ++中是否有使程序休眠x 毫秒的功能?
630 c++  linux  sleep 

30
如何检测无符号整数乘法溢出?
Наэтотвопросестьответына 堆栈溢出нарусском:МожнолинаязыкахC / C ++определитьцелочисленноепереполнение? 我在C ++编写一个程序来找到所有的解决方案一b = c ^,其中一个,b和c ^一起使用所有的数字0-9只出现一次。该程序循环了a和b的值,并且每次在a,b和a b上运行一个数字计数例程,以检查是否满足数字条件。 然而,当可以产生伪解一个b溢出整数限制。我最终使用如下代码检查了这一点: unsigned long b, c, c_test; ... c_test=c*b; // Possible overflow if (c_test/b != c) {/* There has been an overflow*/} else c=c_test; // No overflow 有没有更好的测试溢出方式?我知道有些芯片具有发生溢出时设置的内部标志,但我从未见过通过C或C ++访问它。 请注意,在C和C ++中,签名 int溢出是未定义的行为,因此您必须在没有实际引起它的情况下对其进行检测。有关添加之前的有符号的int溢出,请参阅在C / C ++中检测有符号的溢出。
618 c++  c  integer-overflow 


8
在C ++中使用ifstream逐行读取文件
file.txt的内容是: 5 3 6 4 7 1 10 5 11 6 12 3 12 4 哪里 5 3坐标对。如何在C ++中逐行处理此数据? 我可以获取第一行,但是如何获取文件的下一行? ifstream myfile; myfile.open ("text.txt");
612 c++  file-io  ofstream 

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.