草庐IT

c++ - 如何在运行时指定数组的维数和?

我正在研究建立分布熵的函数。它使用一个copula,如果有人熟悉的话。我需要根据“关心”的维度来总结数组中的值。示例:考虑以下示例...Dimension0(across)_____________|_0_|_0_|_0_|_2_|Dimension1|_1_|_0_|_2_|_0_|(down)|_0_|_3_|_0_|_6_||_0_|_0_|_0_|_0_|I"careabout"dimension0only,and"don'tcare"abouttherest(dim1).Summingthisarraywiththeabovespecificationswill"collap

c++ - 如何在 Visual Studio 2005 中获得完整的调用堆栈?

如何获得使用VisualStudio2005开发的C++应用程序的完整调用堆栈?我想要一个完整的调用堆栈,包括系统库中的代码。我是否必须更改VisualStudio中的某些设置,或者我是否必须安装其他软件? 最佳答案 获取所有项目依赖项的调试信息。这是在项目属性的“配置属性->C/C++->常规”部分下指定的。在菜单上,转到“工具->选项”,然后选择“调试->符号”。添加指向Microsoft的免费符号服务器“symsrvsymsrv.dllc:\symbols*http://msdl.microsoft.com/downloads

c++ - WcfSvcHost 和 IIS WCF 主机遇到 BadImageFormatException

在Vistax64上的VisualStudio2008中创建WCF服务库在引用x86DLL时很麻烦。调用32位DLL的服务需要具有x86平台目标才能在64位操作系统上运行。执行此操作时,WcfSvcHost在您尝试调试服务时会抛出BadImageFormatException。有一个bugreport在MS连接上。我使用的解决方法是coreflagWcfSvcHostas32-bit.明显问题我遇到的主要问题是这个第三方native32位DLL无法使用某些WCF主机加载。当调用使用第三方DLL的服务操作时,我收到以下错误:System.TypeInitializationExcepti

c++ - DLL 和编译器设置

许多文章和帖子都警告在链接和使用DLL时可能导致不兼容的编译器设置。如果您在使用C++编写DLL时遵循最佳实践并使用extern“C”导出函数,并且仅使用POD数据类型或坚持使用接口(interface)(纯虚拟)类,那么哪些编译器设置可能会导致问题?您如何知道哪些编译器设置会导致问题?不同的编译器会有不同的设置吗?是否有可用的VisualC++编译器设置列表? 最佳答案 这不是最终的列表,但我记得的事情:链接到不同的运行时,例如链接到主可执行文件中的调试VisualC++运行时,以及链接到要导入的DLL中的发布VisualC++运

非 C++11 程序中的 C++11 代码/库

假设我将C++11中的代码(我将使用Lambdas)编译为“.o”或库“.a”。我有一个程序,其中我将包含以前的库和头文件,我不能用C++11编译,但是旧的(C++98)。它会编译并正常工作吗? 最佳答案 如果满足以下条件,它将正常工作:(公共(public))头文件不使用任何C++11特性ABI没有改变就此咨询您的平台/编译器没有共同的依赖关系发生变化根据VaughnCato链接的GCC文档,这包括标准库。任何在使用C++11编译时生成不同代码或对象布局并被库和客户端使用的东西都可能是一个问题……即使它没有在接口(interfac

c++ - 什么时候应该让一个类不可复制?

根据Googlestyleguidelines,“很少有类需要可复制。大多数类既不应该有复制构造函数,也不应该有赋值运算符。”他们建议您使类不可复制(即,不为其提供复制构造函数或赋值运算符),而是建议在大多数情况下通过引用或指针传递,或使用无法隐式调用的clone()方法。但是,我听到一些反对意见:访问引用(通常)比访问值慢。在某些计算中,我可能希望保留原始对象的原样,只返回更改后的对象。我可能想将计算的值存储为函数中的本地对象并返回它,如果我通过引用返回它,我无法做到这一点。如果一个类足够小,通过引用传递会比较慢。遵循此准则有哪些正面/负面影响?是否有使类不可复制的标准“经验法则”?

c++ - 在非 GUI 应用程序中使用 Qt,优缺点?

我正在使用C++开发一个半实时系统。许多设计和逻辑都是基于事件的。在寻找C++的一些事件框架时,我找到了Qt。Qt中的信号/槽、状态机看起来非常适合我的情况。我更喜欢它们而不是提升。此外,QObject系统有很多不错的功能,例如QObjectModel,moc,parent-childobjectmemorymanagementetc.但我对Qt知之甚少,这里有几个问题。鉴于我现在对c++/STL相当熟悉,是否值得花时间学习Qt?反正我不会用它最流行的部分,UI。与STL/boost相比,Qt的性能如何?由于应用程序是实时的,因此性能是关键要求。例如,我必须非常仔细地设计数据布局以最大

c++ - 从一堆对象中提取一个对象并检测边缘

在我的大学项目中,我需要通过检测叶子的边缘来根据植物叶子的形状来识别植物的种类。(我使用的是OpenCV2.4.9和C++),但是源图是在植物的真实环境中拍摄的,而且不止一片叶子。请参阅下面的示例图像。所以这里我只需要提取一片叶子的边缘图案来进一步处理。使用Canny边缘检测器我可以识别整个图像的边缘。但我不知道如何从这里着手只提取一片叶子的边缘图案,可能是更清晰完整的叶子。我不知道即使这也是可能的。任何人都可以告诉我这是否可能如何提取一片叶子的边缘我只想知道我需要应用于图像的图像处理步骤。我不想要任何代码示例。我是图像处理和OpenCV的新手,通过实验学习。提前致谢。编辑正如Luis

c++ - OpenCL 找不到平台?

我正在尝试将C++API用于OpenCL。我已经安装了我的NVIDIA驱动程序并测试了我可以运行提供的简单vector加法程序here.我可以用下面的gcc调用编译这个程序,程序运行没有问题。gccmain.c-ovectorAddition-lOpenCL-I/usr/local/cuda-6.5/include但是,我更愿意使用C++API而不是C所需的非常冗长的主机文件。我从here下载了Khronos的C++绑定(bind)并将cl.hpp文件放在与我的其他cl.h文件相同的位置。该代码使用了一些C++11,因此我可以使用以下代码编译代码:g++main.cpp-ovector

c++ - 试图理解 C++ 中的 * 和 &

这个问题在这里已经有了答案:Whatarethedifferencesbetweenapointervariableandareferencevariable?(44个答案)关闭7年前。我有几个问题。这不是家庭作业。我只是想更好地理解。如果我有int*b=&k;那么k必须是一个整数,b是指向k在内存中的位置的指针,对吗?b的底层“数据类型”是什么?当我输出它时,它返回类似0x22fe4c的东西,我假设它是内存位置2293324的十六进制,对吗?内存位置“2293324”到底在哪里?“堆”?如何输出内存位置0、1、2等位置的值?如果我输出*b,这与直接输出k是一样的,因为*不知何故意味着