草庐IT

container-managed

全部标签

java - OOP 术语 : "Container" & "Collection"

C++术语“容器”是否只是Java术语“集合”的同义词? 最佳答案 是的。不过,如果我可以在这里推测的话,C++术语容器更好地强调了所包含项目的所有权,而不是Java的集合,后者没有明确的内存所有权(由于到垃圾收集)。C++容器中的项目在容器被销毁时被销毁(因此项目被包含或拥有),在Java中如果集合本身被垃圾回收,项目可能继续存在。 关于java-OOP术语:"Container"&"Collection",我们在StackOverflow上找到一个类似的问题:

c++ - boost::interprocess::managed_shared_memory 在不同版本的 boost 之间的兼容性

是否有明确的兼容性保证boost::interprocess::managed_shared_memory可以跨不同的boost版本工作?我打算用它在多个进程之间共享一个整数或十(这实际上将充当它们都读取和写入的一段数据的修订号)。这些进程是单独发布的,并且偶尔会终止使用。问题是:我是否会因为1.51中的managed_shared_memory无法与1.44中的managed_shared_memory进行对话而将自己永远锁定在给定的boost版本上? 最佳答案 根据BoostFAQ:HowcantheBoostlibraries

c++ - 如何调试或修复涉及 boost::interprocess managed_shared_memory 的无限循环和堆损坏问题?

我收到以下“第一次机会异常”消息,该消息来self编写的DLL,该DLL在我未编写的可执行文件中运行。也就是说,DLL是一个插件。第一次触发此异常时,尝试打开共享内存映射文件失败。如果我忽略第一次机会异常而只是运行,应用程序最终会卡住或崩溃。First-chanceexceptionat0x76a7c41finnotmyexe.exe:MicrosoftC++exception:boost::interprocess::interprocess_exceptionatmemorylocation0x002bc644..几个小时后,它似乎是由一段无限循环的代码块引起的,直到预期的异常条件

c++ - Visual Studio 2010 : Fatal Error C1902 about "program database manager"

这是来自MSDN的一些描述ErrorMessageprogramdatabasemanagermismatch;pleasecheckyourinstallationAprogramdatabasefile(.pdb)wascreatedusinganewerversionofmspdb80.dllthantheonefoundwhilecompiling.Thiserrorusuallyindicatesthatmspdbsrv.exeormspdbcore.dllaremissingorhavedifferentversionsfrommspdb80.dll.Ensurematch

C++:从 container1 中查找不在 container2 中的任何元素

我有一个std::set(s)和一个std::vector(五).保证vector是排序的/唯一的。我想知道v的所有元素是否都在s中(或者只是停在v的第一个元素而不是s中)。我可以将v转换成一个集合并进行==测试,但是有没有不改变容器类型的另一种方法? 最佳答案 关于std::includes的内容算法?这是一个简短的用法示例:vectorv1{1,2,4,8};vectorv2{1,2,3,8};sets{0,1,2,4,8,16};cout输出:10 关于C++:从container

C++ 自动类型转换 : wrong behaviour for a container class

我正在为非常小的常量vector和矩阵上的线性代数运算实现一些类。目前,当我这样做时:MyMathVectora={1,2,3};MyMathVectorb={1.3,2.3,3.3};std::cout然后First={2,4,6}和Second={2.3,4.3,6.3},因为第二个元素被编译器转换为第一个元素类型。是否有任何“简单”的方法来提供与nativeC++中相同类型的自动转换:int+double=double,double+int=double?非常感谢。编辑:使用答案给出的语法,我让operator+工作了。但我尝试了以下语法,编译失败并出现错误:expectedat

c++ - QMap::contains() VS QMap::find()

我经常看到这样的代码:if(myQMap.contains("mykey")){myValue=myQMap["mykey"];}理论上在QMap中执行两次查找。我的第一react是它应该被下面的替换,它只执行一次查找并且应该快两倍:autoit=myQMap.find("mykey");if(it!=myQMap.end()){myValue=it.value();}我想知道QMap是否会自动为我进行优化?换句话说,我想知道QMap是否保存了用QMap::contains()找到的最后一个元素的位置,并在执行下一次查找之前首先检查它? 最佳答案

c++ - x64 构建 : error MSB8013: This project doesn't contain the Configuration and Platform combination of Debug|Win32

我正在尝试为具有许多解决方案(一些用于CI,一些用于开发人员)和数百个项目的复杂构建运行纯x64构建,并遇到“错误MSB8013:该项目不包含配置和Debug|Win32的平台组合”我已将其简化为一个简单的配置:解决方案A包含项目X和项目Y。项目X有一个项目引用项目Y。解决方案B包含也包含项目X。所有项目或解决方案都不包含Win32平台-它已被删除。当我构建解决方案B(作为x64)时,我收到errorMSB8013:Thisprojectdoesn'tcontaintheConfigurationandPlatformcombinationofDebug|Win32错误信息有时包含额外

c++ - 标准 : container c++ move to front

我正在寻找一个像std::list这样可以有效地将元素移到前面的std容器:a-b-c-d-e将“b”移到前面:a-c-d-e-b标准容器中没有这样的功能。因此,我认为我必须结合remove和push_front函数,但有没有人能找到更好的主意?提前致谢。 最佳答案 如果你不必维护其他元素的顺序,那么最简单的解决方案无疑就是交换您想要的元素与容器中的第一个元素。这个将对所有容器有效。否则,std::list提供了一个splice操作,它可以使用。我认为类似于以下内容:voidmoveToFront(std::list&list,st

android - 无需 Asset Manager 和复制,直接在 C++ 中访问 Android APK Asset 数据

我在我的引擎中使用纯C++在android中创建游戏引擎。没有单个java文件。基本上这是一款只能存储到外部存储器的游戏。当我通过adb手动将我的Assets数据移动到我的外部SD卡时,游戏运行良好且稳定。adbpush..\..\Bin\Data/sdcard/Android/data/com.fantasyhaze.%SMALL_PACKAGE_NAME%/files/Data/这不是一个好的解决方案,因为它无法交付。因此我的Assets数据在Assets文件夹中它在构建过程中被移动到具有以下结构的apk文件中:Assets/数据/MoreFolders/Withsubfolder