Questions tagged «c++»

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

8
在C ++中返回std :: vector的有效方法
在函数中返回std :: vector时,要复制多少数据,以及将std :: vector放入免费存储(在堆中)并返回指针的优化有多大,即: std::vector *f() { std::vector *result = new std::vector(); /* Insert elements into result */ return result; } 比: std::vector f() { std::vector result; /* Insert elements into result */ return result; } ?


8
opengl:glFlush()与glFinish()
我在区分调用glFlush()和之间的实际区别方面遇到困难glFinish()。 该文档说glFlush(),并glFinish()将推所有缓存操作的OpenGL,这样一个可以放心,他们都将被执行,不同之处在于glFlush()将立即返回,在那里为glFinish()块,直到所有操作完成。 阅读了定义后,我发现如果使用该定义,glFlush()可能会遇到向OpenGL提交比其可执行的操作更多的问题。因此,尝试一下,我换了glFinish()一个glFlush()和一个,然后看,我的程序运行了(据我所知),完全一样。帧速率,资源使用情况,一切都一样。 所以我想知道这两个调用之间是否有很大区别,或者我的代码是否使它们运行没有区别。还是应该使用一个与另一个。我还认为OpenGL会调用一些命令glIsDone()来检查a的所有缓冲命令glFlush()是否完整(因此,向OpenGL发送操作的速度不会比执行它们快),但是我找不到这种功能。 我的代码是典型的游戏循环: while (running) { process_stuff(); render_stuff(); }
105 c++  c  opengl  graphics 

5
VST插件如何制作?
我想制作(或学习制作方法)VST插件。为此有一个特殊的SDK吗?如何产生.vst而不是.exe?另外,如果您想为Logic Pro制作音频单元,那该怎么做?谢谢
105 c++  audio  vst 


7
操作后恢复std :: cout的状态
假设我有这样的代码: void printHex(std::ostream& x){ x<<std::hex<<123; } .. int main(){ std::cout<<100; // prints 100 base 10 printHex(std::cout); //prints 123 in hex std::cout<<73; //problem! prints 73 in hex.. } 我的问题是,cout从函数返回后,是否有任何方法可以将状态“恢复” 到其原始状态?(有点像std::boolalpha和std::noboolalpha..)? 谢谢。
105 c++  iostream 

8
赋值运算符和复制构造函数有什么区别?
我不明白C ++中的赋值构造函数和复制构造函数之间的区别。就像这样: class A { public: A() { cout << "A::A()" << endl; } }; // The copy constructor A a = b; // The assignment constructor A c; c = a; // Is it right? 我想知道如何分配赋值构造函数和复制构造函数的内存吗?
105 c++  memory 

3
为什么std :: getline()在格式化提取后会跳过输入?
我有以下代码提示用户输入名称和状态: #include <iostream> #include <string> int main() { std::string name; std::string state; if (std::cin >> name && std::getline(std::cin, state)) { std::cout << "Your name is " << name << " and you live in " << state; } } 我发现该名称已成功提取,但状态尚未提取。这是输入和结果输出: Input: "John" "New Hampshire" Output: "Your name is John and …
105 c++  input  iostream  istream  c++-faq 

2
Visual C ++ 2008 Express下载链接死了吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 7年前关闭。 改善这个问题 我目前正在学习的编程类使用Visual C ++ 2008,并且可以在家中工作,我们可以选择获得快速版。我在网站上的任何地方都找不到下载链接,并且Microsoft支持绝对没有帮助。我还研究了仅使用Visual C ++ 2010的情况,但听说兼容性工作的可能性很小。如果有人知道我可以分别从哪里获得Visual Studio 2008 Express ISO或C ++ 2008 Express下载,请告诉我。
105 c++  ide  download 

11
应该以哪种顺序添加浮点数以获得最精确的结果?
这是我最近的一次采访中问的一个问题,我想知道(我实际上不记得数值分析的理论,所以请帮助我:) 如果我们有一些函数,它会累积浮点数: std::accumulate(v.begin(), v.end(), 0.0); v是一个std::vector<float>,例如。 在累加它们之前对这些数字进行排序会更好吗? 哪个命令会给出最准确的答案? 我怀疑排序依次递增的数字实际上使数值误差少,但不幸的是我不能证明它自己。 PS我确实意识到这可能与现实世界的编程无关,只是感到好奇。

9
如何在线程之间传播异常?
我们有一个单线程调用的函数(我们将其命名为主线程)。在函数主体内,我们产生多个工作线程来执行CPU密集型工作,等待所有线程完成,然后在主线程上返回结果。 结果是调用者可以天真地使用该函数,并且在内部它将使用多个内核。 到目前为止一切都很好。 我们遇到的问题是处理异常。我们不希望工作线程上的异常会使应用程序崩溃。我们希望函数的调用者能够在主线程上捕获它们。我们必须捕获工作线程上的异常,并将其传播到主线程,以使它们继续从那里展开。 我们应该怎么做? 我能想到的最好的是: 在我们的工作线程上捕获各种各样的异常(std :: exception和我们自己的一些异常)。 记录异常的类型和消息。 在主线程上有一个对应的switch语句,该语句会引发工作线程上记录的任何类型的异常。 这具有明显的缺点,即仅支持有限的一组异常类型,并且每当添加新的异常类型时都需要进行修改。


5
如何使用迭代器在向量中导航?(C ++)
目标是访问字符串向量的“ nth”元素,而不是[]运算符或“ at”方法。据我了解,迭代器可用于在容器中导航,但我以前从未使用过迭代器,而我正在阅读的内容令人困惑。 如果有人能给我一些有关如何实现这一目标的信息,我将不胜感激。谢谢。
105 c++  iterator  vector 

10
如何在类中初始化const成员变量?
#include <iostream> using namespace std; class T1 { const int t = 100; public: T1() { cout << "T1 constructor: " << t << endl; } }; 当我尝试t使用100 初始化const成员变量时,却给了我以下错误: test.cpp:21: error: ISO C++ forbids initialization of member ‘t’ test.cpp:21: error: making ‘t’ static 如何初始化const值?
105 c++  const 


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.