草庐IT

c++ - 拥有大型二维数组 : static int vs int

在解决DP相关问题时,我观察到第一个有效但第二个段错误。实际原因是什么?仅使用int的内存限制是多少?intmain(){staticinta[3160][3160];return0;}intmain(){inta[3160][3160];return0;} 最佳答案 因为您可能没有足够的堆栈内存来存储这个大数组。第二个示例在堆栈上创建一个数组,而第一个示例创建的数组不在堆栈上而是在数据/Bss段中的某个位置,因为您使用static限定符明确指定了存储条件.注意c++标准没有规定stack或者heap或者datasegment或者B

c++ - C strings vs const char* 让我感到困惑......请帮忙

我是一名C/C++初学者,试图构建一个看似非常简单的程序:它将文件加载到C字符串(constchar*)中。然而,尽管该程序非常简单,但它并没有按照我理解的方式工作。看一看:#include#includestd::stringloadStringFromFile(constchar*file){std::ifstreamshader_file(file,std::ifstream::in);std::stringstr((std::istreambuf_iterator(shader_file)),std::istreambuf_iterator());returnstr;}cons

c++ - 如何在没有项目的情况下在 Visual Studio 2012 中只编译一个文件(C++)?

我有很多文件-C++示例代码。我打开每个文件,我必须将代码从示例文件复制到某个项目中的main.cpp文件。VisualStudio可以在没有项目的情况下编译一个打开的.cpp文件吗? 最佳答案 在这种情况下,从命令行编译可能是最简单的。启动命令提示符窗口并运行批处理文件以适本地设置环境变量(%PATH%等)。在我的电脑上这是"C:\ProgramFiles\MicrosoftVisualStudio9.0\vc\vcvarsall.bat"然后将foo.cpp编译成foo.exe,就用cl/EHscfoo.cpp

c++ - VS2010 无法链接它应该构建的库

我在尝试构建我的DLL项目时遇到了VS2010的问题。DLL本身生成得很好,但我需要与其他依赖项目链接的.lib文件失败。我有一个经典的__declspec(dllexport)和所有东西,不用担心,构建在Debug模式下完美运行。我只在Release模式下遇到这个问题,但我不认为我搞砸了我的设置(它们几乎是默认设置)。这是我得到的输出错误(未解析的外部符号):Erreur274errorLNK1120:1externesnonrésolus\Release\Engine.libEngineErreur273errorLNK2001:symboleexternenonrésoluApp

从 DllMain() 锁定时,Visual Studio 2012 中的 C++11 std::mutex 死锁

当从DllMain()锁定互斥量时,我看到std::mutex出现死锁下面是一个最小的DLL测试用例,它为我展示了这个问题。我的实际代码执行互斥锁定,因为它使用的成员函数在正常函数期间也可在初始化之外使用。我认为问题是main()线程的调用堆栈中所见的调度程序与调度程序生成的另一个线程(可能)之间存在死锁。死锁似乎发生在main()实际执行之前。如果有任何关于如何修复/解决死锁的建议,我将不胜感激。简单的动态链接库:staticvoidtestFunc(){std::mutexmtx;mtx.lock();mtx.unlock();}BOOLAPIENTRYDllMain(HMODUL

c++ - 显式默认和删除的构造函数 : is there any similar functionality available in VS2012?

在VS2012中,“显式默认和删除特殊成员函数”功能(http://en.wikipedia.org/wiki/C++0x#Explicitly_defaulted_and_deleted_special_member_functions、http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm)尚不可用(http://msdn.microsoft.com/en-us/library/vstudio/hh567368.aspx)。是否有任何解决方法来使用此类功能,即使非常冗长?在实践中,我可以翻译这个吗struc

c++ - 尝试编译 OpenCV 程序,但在 Visual Studio 2012 中出现 LNK2038 错误

我关注了this使用VisualStudio2012设置OpenCV的教程,并将所有对x86的引用更改为x64,如教程建议的那样。但是当运行给出的示例代码时,我收到以下错误消息(除了236其他):错误LNK2038:检测到“RuntimeLibrary”不匹配:值“MTd_StaticDebug”与Source.obj中的值“MDd_DynamicDebug”不匹配c:\Users\user\documents\visualstudio2012\Projects\NewProject\NewProject\opencv_core246d.lib(array.obj)新项目我不确定如何解

C++11 在 Visual Studio 2012 中的委托(delegate)构造函数

我正在尝试在VisualStudio2012中使用委托(delegate)构造函数。以下代码在Xcode4.6中编译但在VisualStudio2012中不编译:在.h文件中classErrorReportDlg:publicQDialog{public:ErrorReportDlg(OwlExceptionPtrex,QWidget*parent);ErrorReportDlg(QWidget*parent);virtual~ErrorReportDlg();}在.cpp文件中//FWIW,OwlExceptionPtris//typdefboost::shared_ptrOwlEx

在VS Code Tasks.json上使用基于#{fileExtName}的任务

我一直在尝试使用条件来检查当前打开的文件扩展名称,以便我可以自动使用不同的任务,但没有成功。这是当前的任务。{"version":"0.1.0","isShellCommand":true,"showOutput":"always","suppressTaskName":true,"echoCommand":true,"tasks":[{"taskName":"Buildc++","command":"","isBuildCommand":true,"args":["g++","-o","${fileBasenameNoExtension}","${fileBasename}"]}]}我的目标

java - 性能优化 : C++ vs Java not performing as expected

我编写了两个程序来实现一个简单的矩阵乘法算法,一个用C++编写,一个用Java编写。与我的预期相反,Java程序的运行速度比C++程序快大约2.5倍。我是C++的新手,希望就我可以在C++程序中进行哪些更改以使其运行更快提出建议。我的程序从这篇博文中借用了代码和数据http://martin-thoma.com/matrix-multiplication-python-java-cpp.以下是我正在使用的当前编译标志:g++-O3main.ccjavacMain.java以下是当前的编译器/运行时版本:$g++--versiong++.exe(GCC)4.8.1Copyright(C)