草庐IT

替代者

全部标签

c++ - 替代 std::vector 来存储一系列对象

我正在处理数百万个要按顺序访问的数据元素。元素很少增长和收缩,但会以可预测的方式以已知block大小增长和收缩。我正在寻找类似于std::vector的高效集合,它不会重新分配但将数据保存在多个内存块中。每当我将更多对象放入集合中时,如果最后一个block已用完,则会创建并填充一个新block。我不希望有一个随机访问运营商。由于性能问题和一些超出手头问题范围的其他问题,我无法使用std::list。是否有适合我在boost或任何其他库中的要求的现成集合。在尝试自己做饭之前,我想确保货架上没有可用的东西。 最佳答案 在我看来,最好的选

c++ - 创建模板化对象时替代工厂模式 - C++

我想为一个CG项目实现一个Mesh类,但遇到了一些问题。我想要做的是一个Mesh类,它向用户隐藏实现细节(比如加载到特定API:OpenGL、DirectX、CUDA等)。此外,由于Mesh类将用于研究项目,因此该Mesh类必须非常灵活。classChannel{virtualloadToAPI()=0;}templateclassTypedChannel:publicChannel{std::vectordata;};templateclassOpenGLChannel:publicTypedChannel{loadToAPI();//implementation};classMes

c++ - GCC ICE——替代函数语法、可变参数模板和元组

(与C++0x,HowdoIexpandatupleintovariadictemplatefunctionarguments?相关。)以下代码(见下文)取自此discussion.目标是将函数应用于元组。我简化了模板参数并修改了代码以允许返回泛型类型的值。虽然原始代码编译正常,但当我尝试使用GCC4.4.3编译修改后的代码时,g++-std=c++0xmain.cc-omainGCC报告内部编译器错误(ICE),并显示以下消息:main.cc:Infunction‘intmain()’:main.cc:53:internalcompilererror:intsubst_copy,at

c++ - 编写 ODBC 驱动程序的替代方法

我们将分配的时间序列数据存储到我们自己的专有“数据库”中。在我们系统的下一个版本中,我们希望为我们的用户提供一个简单的查询机制,以使用标准工具从数据库中提取原始数据(作为我们系统可以创建的报告的补充)。我研究过编写ODBC驱动程序的可能性,但它看起来是一项艰巨的任务,尤其是当使用非常简单的select语句时。如果图书馆提供任何提示、想法和/或建议,我将不胜感激,它们可以使这项任务更简单一些。我们的平台是Windows和我们的开发者。环境。是visualstudio2010(nativeC++) 最佳答案 ALINQprovider.

c++ - 并行迭代宏的替代方案?

这将是一个很长的故事,但也许你们中的一些人愿意研究这个案例。我正在从事并行图算法开发。我选择了一个名为STINGER的尖端HPC并行图数据结构。.STINGER的使命声明如下:"STINGERshouldprovideacommonabstractdatastructuresuchthatthelargegraphcommunitycanquicklyleverageeachothers'researchdevelopments.[...] AlgorithmswrittenforSTINGERcaneasilybetranslated/portedbetweenmultiplelan

c++ - 使用精神以替代方式解析结构时混淆输出

这是我尝试以尽可能最好的方式做的事情的一个大大减少的案例。(当然,问题还在于,我试图了解如何最好地使用精神。)我需要将数据解析为具有多个成员的结构。成员被简单地列为键值对,因此这很简单——但是,如果某些键不同,那么在我正在解析的数据中,不同的值可能会稍后出现,或者某些键可能会被省略。尽管如此,我最终解析的数据结构是有固定形式的。在示例代码中,my_struct是struct像这样:structmy_struct{std::stringa;std::stringb;std::stringc;std::stringd;};和grammar1是一个像这样解析字符串的语法"a:xb:yc:zd

c++ - "nicer"替代局部变量名称前缀?

在我正在编写的一堆代码中,我想指出某些变量将以某种方式使用,或者它们具有某种特征。为了便于讨论,假设变量可以是甜的、咸的、酸的或苦的。我现在用的是这样的:intfoo(){intsalty_x;intsour_y;do_stuff_with(salty_x,sour_y);}我可能还有sour_x或salty_y等理想情况下——但这不是有效的C++——我本来可以这样写的:intfoo(){namespacesalty{intx;}namespacesour{inty;}do_stuff_with(salty::x,sour::y);}这将很好地允许在同一个函数中使用“sourx”和“s

c++ - c++中许多模板的替代方案

我正在使用gcc5.4.02开发一个c++11应用程序。在这个应用程序中,我有以下模板:templateclassOperator{T3*op1(T1*operand1,T2*operand2);T3*op2(T1*operand1,T2*operand2);T3*op3(T1*operand1,T2*operand2);T3*op4(T1*operand1,T2*operand2);//...T3*opn(T1*operand1,T2*operand2);};在op1、op2、...opn中,我需要用数组做一堆事情(预计可能有数亿个元素)。像算术、比较、复制等。我选择使用模板是因为我

c++ - Themida 的软件保护替代品

我们目前使用Themida来保护我们的C/C++软件,但防病毒软件的大量误报困扰着我们的客户群。有没有人知道任何其他软件保护器和Themida,但没有“让反病毒疯狂”的旗帜? 最佳答案 有很多,但都看起来很可疑:UPX、NSPACK、eXpressor、FSG、telock、ReCrypt、Orien、Aspack、ReCrypt、AcProtect、MEW、Molebox、mpress、EXESTEALTH、yoda的密码器、一旦出现nerw版本,就会有人创建反工具。也许解决方案是某种DRM保护

c++ - gluLookAt 替代方案不起作用

我尝试自己计算观察矩阵,而不是使用gluLookAt()。我的问题是我的矩阵不起作用。然而,在gluLookAt上使用相同的参数确实有效。我创建观察矩阵的方法:Vector3Eye,At,Up;//theseshouldbeparameters=)Vector3zaxis=At-Eye;zaxis.Normalize();Vector3xaxis=Vector3::Cross(Up,zaxis);xaxis.Normalize();Vector3yaxis=Vector3::Cross(zaxis,xaxis);yaxis.Normalize();floatr[16]={xaxis.x