jjzjj

Indexing

全部标签

c++ - 主内存 B+ 树的持久化策略

我正在尝试使用C++为键值对开发主内存索引。我需要确保索引在崩溃后可以恢复。我正在使用我发现的CSB+-Tree实现(BSD许可证)here我面临的主要挑战是在重新实例化节点后维护父子关系数据。我已经搜索了各种策略来将“树结构”保存到磁盘或从磁盘恢复。其中一些是:将节点对象保存在Pre-order中,并为空子指针写入NULLS。为节点提供IDS并在写入时保存节点ID而不是指针到磁盘,然后在重新实例化期间使用ID解析指针。保存时使用文件偏移值(物理内存中的地址)而不是子节点的主内存地址。这可能意味着我必须从leaf-up保存。我还查看了几个序列化库。GoogleProtocolBuffe

c++ - 创建索引有序映射

过去几天,我浏览了这里和类似的网站,花了很多时间试图找到解决方案,并想寻求建议。我得出了一个令人失望的结论,即如果不进入C++的boost库,就不可能创建一个保留索引顺序的关联容器。更清楚和具体的是,我需要的是一个map,它可以使用operator[key]进行查找,但也可以在为迭代目的添加元素的顺序中建立索引。今天早上我决定我需要自己写一个,我已经尝试了一些使用map的map和成对的vector等的方法。但实际上没有任何效果,并且令人惊讶地获得了我正在寻找的所有功能用这种语言不容易实现。我一定是错的吧?有没有其他人有过需要此功能或熟悉此概念的经验,可以为我指明我正在寻找的正确方向?非

c++ - 多维稀疏矩阵压缩

任何人都可以推荐一个好的C++库来存储多维稀疏矩阵,它专注于矩阵中数据的压缩。矩阵的维数会很大(比如80维)。欢迎任何帮助:)。编辑:矩阵高度稀疏,数量级为0.0000001(或)1x10-6。 最佳答案 在c#中,我使用键值对或“字典”来存储稀疏填充数组。我认为对于80个维度,您必须构建一个基于字符串的键。使用单个函数来创建它应该保持一致的key。只需连接一个逗号分隔的维度列表。不幸的是,我不知道一个好的key对,C++的字典库。如果您以前使用过,可能是STL,但我不会推荐它。 关于c

c++ - 用于分组和管理许多不同的内存中索引的解决方案

我有一个Person对象列表,目前我使用5个不同的关联结构实例(std::map/multimap、std::unordered_map)来为各种静态结果提供高效查询,例如:年龄范围为20-40岁,或所有名字为john等的人。随着Person结构的发展,我发现我必须手动添加一种新类型的索引,弄清楚它的正确结构应该是什么,等等,简而言之,它变得非常难以管理。在未来,查询似乎会变得越来越复杂。-我们已经采用了DB/SQL方法,它对于我们的需求来说太慢了,目前当前的解决方案已经足够快了,但是从软件工程的角度来看,它变得非常难以管理。我的问题是,是否有任何库或解决方案以可管理的方式为对象列表提

c++ - 对角展平矩阵的邻域索引计算

我有一个二维矩阵存储在沿对角线的FlatBuffers中。例如,一个4x4矩阵的索引会像这样分散:0259148123711146101315使用这种表示,在给定原始索引和X/Y偏移量的情况下,计算相邻元素索引的最有效方法是什么?例如://returntheindexofaneighborgivenanoffsetintgetNGonalNeighbor(constsize_tindex,constintx_offset,constinty_offset){//...}//forthearrayabove:getNGonalNeighbor(15,-1,-1);//shouldretu

c++ - 将一维, "flattened"索引转换为N维数组的N维 vector 索引

我有一个N维数组,每个维度都有相同数量的项目(即相同的“长度”)。给定一个数组中的一维索引,我想要一个返回与该索引关联的坐标的函数。数组的索引方式实际上无关紧要(从某种意义上说,数组的所有维度都相等,就将在数组上运行的算法而言,没有一个具有优先级)。因此,例如,如果我有一个4x4x4数组,索引63应返回[3,3,3],索引0应返回[0,0,0],索引5应返回[1,1,0].我写了下面的函数,其中nDim是维数,nBin是每个维的长度:defindicesOf(x,nDim,nBin):indices=[]foriinarange(0,nDim):index=(x/nBin**(i))%

c++ - 创建类索引器 operator[] 允许字符串参数(字符串索引)

我想用C++创建一个类。此类必须使用集合进行管理。好的,没问题,我当然想使用operator[],但在这种情况下,我希望不是按位置索引,而是按名称索引==>这意味着使用字符串索引器。似乎这种东西对我的编译器不太友好://Inhppclassmyclass{......std::stringoperator[](conststd::string&name);}//Incppstd::stringmyclass::operator[](conststd::string&name){...}//Inmainmyclassm;std::stringvalue=m["Name"];编译器告诉我他

c++ - 构建成功时 Eclipse (CDT) 中的可疑错误消息

使用面向C/C++Linux开发人员的EclipseIDE(版本:Indigo发行版)和g++4.1.2(在ScientificLinuxCERN5=RHEL5),我目前从事的项目使用了Qt4GUI以及Apache的log4cxx框架和一些C++标准类。我已经安装了Nokia的“QtEclipseIntegrationforC++”插件,它会自动配置Qt工具链支持(qmake等)。到目前为止,我的一切都在运行。我的程序编译得很好。除了一些警告(这是合理的),我在Eclipse的控制台上观察到一个成功的构建过程。不幸的是,同时我在“问题”窗口中收到大约150条错误消息。一些例子:对于行u

【论文阅读】Subgraph Matching with Effective Matching Order and Indexing

SunS,LuoQ.Subgraphmatchingwitheffectivematchingorderandindexing[J].IEEETransactionsonKnowledgeandDataEngineering,2020,34(1):491-505.文章目录Abstract1INTRODUCTION2BACKGROUND2.1Preliminaries2.2RelatedWork2.3Tree-basedFrameworks3ALGORITHMOVERVIEW4BIGRAPHINDEX4.1CandidateExtraction4.2IndexConstruction4.3Ana

c++ - Boost Multi-Index 自定义复合键比较器

我正在寻找为带有复合键的boostordered_non_unique索引编写自定义比较器。我不确定该怎么做。Boost有一个composite_key_comparer,但这对我不起作用,因为键成员的比较器之一取决于前一个成员。这是一个简化的示例,但我希望当second_为“A”时,索引按third_降序排序,首先为third_保留0值,然后在所有其他情况下使用std::less。希望这是有道理的。我想打印下面的代码:3,BLAH,A,05,BLAH,A,112,BLAH,A,104,BLAH,A,91,BLAH,A,8代码将代替这里有什么???。感谢您的帮助。#include#in