草庐IT

结构化剪枝

全部标签

c++ - 对一组数字进行排序最快的数据结构(和排序算法)是什么?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭9年前。Improvethisquestion我需要一个数据结构来保存一组数字并尽快对它们进行排序。我认为列表会更好,因为向列表中插入新数字比vector更容易(后者需要在插入后复制元素)。但是,遍历链表(我使用排序列表作为从unordered_map中获取对象的查找)可能会慢得多,因为内存分散在整个堆中。我正在考虑使用map,但由于不连续的性质,这不会也有不好的内存访问吗?静态分配的数组(有很多空白空间)和快速排序算法是我想到的另一个想法.....

c++ - 使用 O(1) 元素访问在 Haskell 中实现高效的类似 zipper 的数据结构

问题我想创建一个数据类型,允许快速访问和修改其元素。是否可以在Haskell中创建一个结构和函数,其执行速度与简单的C++实现一样快?问题详情我正在用Haskell编写一个编译器。我有AST由数据类型表示,让我们考虑以下一个:importPreludehiding(id)--thisisasampledatatype,therealonehasgotalotofconstructorsdataAST=A{id::Int,x::AST,y::AST,z::AST}|B{id::Int}|C{id::Int,x::AST,y::AST}|D{id::Int,u::AST,v::AST,w:

c++ - 我可以使用聚合初始值设定项来返回 C++ 中的结构吗?

我有一个函数返回一个由两个整数组成的命名结构,如下所示:structmyStruct{inti;intj;};myStructmyFunction(intmyArg){switch(myArg){case0:return{1,2};case1:return{2,3};default:return{4,5};}}我希望能够从我的switch语句中返回适当初始化的结构。我可以通过声明一个命名结构并初始化它,然后返回命名结构来做到这一点,但是如果我能让编译器像我上面的例子那样为我创建匿名结构会更干净——它不会编译。这可以(合法地)工作吗?或者实现我的目标最简洁的方法是什么?

c++ - 具有三个整数的结构键的良好哈希函数

对于一个简单的C++结构,它具有三个int来标识一个唯一的结构,如果对a、b和c的实际值了解得不多的话,什么可以是一个好的哈希函数实现。我需要将该结构用作unordered_map的键吗?structKey{inta,b,c;} 最佳答案 将整个结构传递给Murmurhash:https://sites.google.com/site/murmurhash/不要尝试自己混合这些值(例如上面的乘法、加法、异或等建议)。利用哈希函数的全部意义在于,它已经可以非常有效地混合它们。如果你预混合,你只是带走了有用的熵。

c++ - Boost graph typedef c++ 结构的前向声明

简短的问题描述:基本上我想要structType;typedefcontainerMyType;structType{MyType::sometypemember;}现在,我该怎么做?实际问题:对于BoostSuccesiveShortestPath算法,我需要将我的前向边缘映射到它们的反向。我有以下代码:structVertexProperty{};structEdgeProperty;typedefboost::adjacency_listDirectedGraph;structEdgeProperty{doubleedge_capacity;//capacity:1forforw

数据结构—静态查找

简介1.数据的组织和查找是大多数应用程序的核心2.线性表、树、图是数据的组织结构3.查找是所有数据处理中最基本、最常用的操作4.当在一个庞大数量的数据集合中查找时,查找方法和效率就显得格外重要查找介绍1.查找包含四种操作:查询、检索、插入、删除查询,元素是否存在检索,找到某个元素,访问元素的属性插入,若元素不存在则插入删除,若元素存在则删除2.静态查找表:包含前两种查询和检索操作,查找操作不影响原有数据集合3.查找的术语查找表,同一类型元素构成的集合。集合是一个松散灵活的数据结构关键字,是数据元素中某个数据项的值,用以标识一个数据元素,分主关键字(唯一标识),次关键字(部分识别)查找,根据给定

c++ - 递归数据结构的前向声明

回到我编写Delphi的时候,有一个TStringList,它基本上是一个字符串映射到Delphi的通用TObject。使用这种结构,我可以通过针对其中一个字符串键放置另一个TStringList来轻松地创建递归的层次结构:ParentStringList["somekey"]="justastringvalue";ParentStringList["anotherkey"]=SomeChildStringList;问题是,我如何在C++中实现同样的事情?我目前拥有的是:typedefboost::variantmy_variant;typedefstd::mapmy_dictiona

同一接口(interface)的多个版本的 C++ 设计(头文件中的枚举/结构)

我们正在与一个外部控制的程序连接,该程序具有定义的包含枚举和结构的header。我们希望能够以尽可能少的重复代码与该程序的多个版本进行交互。每个版本都有相同的通用枚举和结构,但随着时间的推移会略有修改。在理想的设置中,我们可以有条件地包含同一header的不同版本(即,如果与版本1接口(interface)#include“version1\progDefs.h”,否则#include“version2\progDefs.h”),但不要相信这在C++中是可能的。下面是一个简单的例子来说明问题和我们目前正在做的事情。感谢您的帮助。version1\progDefs.h包含enumitem

c++ - 使用/为 TBB 构建分组数据结构

最近我一直在考虑使用TBB而不是boost.threads来加速开发。通常parallel_for在大多数情况下都有效,但我这里的情况有点复杂。有一个需要计算的结构数组,已根据成员变量排序。这是因为变量值与将在计算期间访问的数据相关,并且根据此对结构进行分组将允许串行设计中的缓存一致性。#include#includestructthing{floatvalue_one;floatvalue_two;unsignedintsort_id;};classfunctor{thing*m_array;public:functor(thing*_array):m_array(_array){;

c++ - 指向结构的 std::vector 的指针

structStruct_t{intValue1;intValue2;};vectorStruct;Struct.resize(10,Struct_t());for(inti=0;i如何创建指向Struct[i]的指针?我想做的基本上是这样的,但我相信这可以做得更好:intvalue=6;Struct_ttemp=Struct[value],*s;s=&temp;s->Value1=42;s->Value2=6;主要目标是,我可以使用1行/函数轻松创建指向Struct[n]的指针。 最佳答案 到目前为止,提供的答案缺少房间里的大象。